리눅스 임시 파일 제거

리눅스 임시 파일 제거

명령을 사용하여 물결표로 끝나는 파일을 제거하려고 했지만 a로 시작 하고 끝나는 rm *.*~파일은 제거되지 않습니다 (예: ) . 또한 시도했지만 .로 시작하는 파일에서는 작동하지 않습니다 . 누군가 그 이유를 설명할 수 있습니까?.~.somefile~rm *~.

~a로 시작하는지 여부에 관계없이 로 끝나는 모든 파일을 제거하고 싶습니다 .(find/exec 없이 해당 파일을 제거하려고 했습니다). 그게 가능합니까?

답변1

a로 시작하는 파일은 .기본적으로 숨겨져 있으며 일반 ls. 본 적이 없을 수도 있으므로 수동으로 포함하지 않는 한 쉘은 일반적으로 이러한 파일과 일치하지 않습니다. 다음과 같이 이 작업을 수행할 수 있습니다.

rm *~ .*~

답변2

위의 답변은 부작용이 적기 때문에 더 안전할 수도 있지만 완전성을 위해...

bash 셸(대부분의 사람들이 Linux에서 실행하는 것)에는 glob에 도트 파일을 포함할지 여부를 나타내는 플래그가 있습니다. 으로 설정하셨습니다 shopt -s dotglob. 아래 순서는 플래그를 설정하기 전과 설정 후입니다. dotglob이 설정되면 rm이 이를 제거합니다.

$ touch .somefile~
$ rm *~
rm: cannot remove `*~': No such file or directory
$ ls -A
.somefile~
$ shopt -s dotglob
$ rm *~
$ ls -A
$

조금 덜 안전합니다. 이론적으로는 이것이 설정되었는지 여부를 잊어버릴 수도 있습니다. 그러나 이것을 어디에서나 설정하고 일관성을 유지한다면 원하는 대로 될 수도 있습니다.

관련 정보