컴퓨터가 시작될 때 모든 디렉토리의 파일을 정리하는 작은 스크립트를 작성하려면 어떻게해야합니까?


9

인터넷 전용 게스트 컴퓨터가 있습니다. 일부 사용자는 일부 파일을 다운로드하여 바탕 화면에 남겨 두지 만 컴퓨터에 모든 게스트를위한 공간이 충분하지 않아 파일을 넣을 수 없습니다.

내가하고 싶은 것은 컴퓨터가 시작될 때 홈 디렉토리 내의 모든 파일을 깨끗하게하지만 음악, 그림, 문서 및 다운로드와 같은 디렉토리 구조를 유지하는 것입니다.

어떻게하면됩니까?


거의 모든 것 : 당신의 대답-죄송합니다-당신은 그것을 알고 있습니다. 손님이 다른 언어를 선택하면 어떻게 되나요? 숨겨진 구성 및 캐시 파일 (브라우저 기록, 휴지통 등)은 어떻습니까? 롤랜드 테일러에 따르면 제거되지 않는 파일의 화이트리스트가 있어야합니다. 또한 기본 디렉토리 사용 xdg-user-dir~/.config/user-dirs.dirs기본 디렉토리를 고려해야 합니다.
Danjou은

@ dAnjou : 내 솔루션을 사용하면 가정의 표준 폴더가 선택한 언어에 따라 만들어집니다. 또한 OP는 깨끗한 환경을 요청하는 것처럼 보이므로 "화이트리스트"라고 부르는 이유를 이해할 수 없습니다.
enzotib

1
@enzotib : 알겠습니다. 분명히 롤랜드 테일러 (그리고 나)는 틀렸다. 무슨 일이 일어 났는지 모르겠습니다. 당신은 당신의 대답을 편집하고 가능성에 스크립트를 넣어 추가 할 수 /etc/gdm/PostSession또는 /etc/gdm/PreSession내 downvote을 철회 할 수 있도록?
dAnjou

답변:


14

안전하게 제거 할 수 있는 모든 파일을 그들이 다시 때문에에서 사용자 생성에 복사 된 파일에서 떨어져, 홈 디렉토리에 /etc/skel있으므로,

#!/bin/bash

shopt -s dotglob 
rm -rf /home/username/*
sudo -u username cp -a /etc/skel/* /home/username/

여기서 username의미있는 무언가로 대체해야합니다.

귀하의 요청 ( "컴퓨터가 시작될 때")에 따라에서 실행할 수 있습니다 /etc/rc.local. 아마도 로그인 할 때마다 실행하기를 원하므로 /etc/gdm/PostSession또는 아래에 넣으십시오 /etc/gdm/PreSession.


삭제하면 로그인 할 수없는 파일이 있다는 것을 알고 있습니까?
RolandiXor

@Roland Taylor : 어떤 파일? 방금 모든 파일 제거를 테스트했습니다
enzotib

1
@danjjl :이 옵션은 bash *가 모든 파일 및 디렉토리, 심지어 숨겨져있는 디렉토리와도 일치 하도록합니다.
enzotib

1
아니요, 파일이 누락 되어도 로그인 할 수 없습니다. 홈 디렉토리가 누락되면 문제가 발생하거나 권한이 잘못 설정된 파일이 발생할 수 있습니다. 그러나 프로그램은 어떤 상황에서도 파일이 있다고 가정해서는 안됩니다. 존재하지 않으면 그냥 만들어야합니다.
Jo-Erlend Schinstad

1
글로벌 시작 스크립트 이후 에 실행되는 "시작 응용 프로그램"에 넣지 않는 것이 좋습니다 user-dirs-update-gtk. 다른 사용자의 username경우 스크립트에서 를 변경해야합니다 . 마지막으로 게스트 계정에는 영구 홈 디렉토리가 없으므로이 계정에는 스크립트가 필요하지 않습니다.
enzotib

6

손님 세션을 설명하고 있습니다. 그것이 어떻게 작동하는지 완전히 확신하지는 못하지만 11.10에서는 기본적으로 시작 화면에 표시됩니다. 이 계정은 원하는 것을 정확하게 수행하므로 11.04에 다시 만들려고 시간을 보내고 싶거나 11.10으로 업그레이드하는 것이 편할 때까지 기다리는 것이 좋습니다. 목요일에 베타 1에 들어갑니다. 어쨌든 라이브 세션을 다운로드하여 부팅하여 원하는 방식으로 보는 것이 아프지 않습니다. 정확히 원하는 방식으로 재생성하는 방법을 알게 될 것입니다.


2

선택한 이름으로 스크립트를 작성하고이 컨텐츠를 추가하십시오.

rm -r ~/Music/*
rm -r ~/Pictures/*
rm -r ~/Documents/*
rm -r ~/Videos/*
rm -r ~/Downloads*
rm -r ~/Desktop/*

이 파일을 저장하고 실행 파일로 표시 한 다음 시작 응용 프로그램에 정리해야하는 계정에 추가하십시오.

해당 디렉토리의 모든 파일이 지워집니다. 그러나 ~/자체 내용을 정리하는 것은 조금 더 복잡하며 안전한 방법을 찾으면 대답을 업데이트 할 것입니다.


1

당신은 같은 것을 할 수 있습니다

#!/bin/bash

rm -rf /home/Guest/Desktop/*
rm -rf /home/Guest/Documents/*
rm -rf /home/Guest/Downloads/*
rm -rf /home/Guest/Music/*
rm -rf /home/Guest/Pictures/*
rm -rf /home/Guest/Videos/*

이것을 같은 것으로 저장하고로 cleanup.sh실행 가능하게 만드십시오 chmod +x cleanup.sh. 그런 다음에 전화 할 수 있습니다 ./cleanup. 이렇게하면 이 폴더의 모든 내용 이 제거되므로주의해서 사용하십시오. "게스트"를 사용자 이름으로 변경하십시오.

시작시이를 시작 응용 프로그램 환경 설정에 추가하여 시작할 수 있습니다.

이 스크립트를 시스템에서 크론 작업으로 추가하여 매일 밤 실행되도록 할 수도 있습니다. 크론 작업에 대한 자세한 정보는 여기참조하십시오 .


당신의 대답은 내 것보다 낫습니다 : D! Btw가 더 안전하므로 -rf를 -r로 변경하십시오.
RolandiXor

@Roland : 반드시 더 안전하지는 않으며 위험 가능성도 있습니다 : -f읽기 전용 파일 (쓰기 비트가 설정되지 않은 파일)을 제거하도록 요청하지 않고 확인없이 파일을 제거합니다. 를 제거 -f하면 /home/Guest/Desktop/000000000파일을 작성하고 읽기 전용으로 하여 파일 이 제거되지 않도록 할 수 있습니다 . 그러면 숨겨진 확인으로 스크립트가 정지되어 파일 제거를 계속하지 않습니다. Firefox는 읽기 전용 다운로드로 알려져 있습니다.
Lekensteyn

이것이 제가 원래 포함시킨 이유입니다. 읽기 전용 파일의 경우 스크립트가 실패하는 것을 원하지 않았습니다. 어쨌든 꽤 파괴적인 스크립트이기 때문에 -f플래그를 추가해도 크게 아프지 않을 것이라고 생각했습니다. 다시 추가 할 수 있습니다.
Kris Harper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.