사용자 디렉터리에서 모든 임시 파일을 찾아 삭제합니다.

사용자 디렉터리에서 모든 임시 파일을 찾아 삭제합니다.

저는 vim을 많이 사용하는데 제가 사는 지역에서는 정전이 자주 발생합니다. 그래서 결과적으로 *.swp내 컴퓨터에 많은 파일이 흩어져 있게 되었습니다.

확장자가 , 또는인 시스템 전체의 rm모든 파일을 삭제하는 명령 별칭을 원합니다 ..swp~.netrwhist.log.bak(또는 적어도 내 홈 디렉토리에). 내가 여기 있어도 ~/Desktop.

이것을 어떻게 구현합니까?

답변1

이렇게 하면 이름 이 , .swp또는 다른 곳으로 끝나는 홈 디렉터리의 모든 파일이 삭제됩니다 . 프롬프트, 확인, 복구가 없으며 파일이 영원히 사라졌습니다.~.netrwhist.log.bak

find ~ -type f \( -name '*.swp' -o -name '*~' -o -name '*.bak' -o -name '.netrwhist' \) -delete

(위험해 보이기 때문에 일부러 생략했습니다 *.log. 임시 파일의 일반적인 확장자가 아니며 해당 이름을 가진 임시가 아닌 파일이 많이 있습니다.)

운영 체제가 Linux가 아닌 -delete경우 -exec rm {} +.

다음을 설정하여 스왑 파일을 디렉터리에 넣도록 Vim을 구성해야 할 것입니다.directory옵션:

set dir=~/tmp/vim-swap-files//,/var/tmp//

먼저 디렉터리를 만듭니다. 마지막으로 //스왑 파일 이름에 원본 파일의 디렉터리 위치를 포함시켜 다른 디렉터리에 있는 같은 이름의 파일이 충돌을 일으키지 않도록 하는 것입니다.

다음 명령을 사용하여 백업 파일에 대해 동일한 작업을 수행할 수 있습니다.backupdir옵션, 별 의미가 없더라도 말이죠.

Emacs를 사용하는 경우 다음을 설정하세요.auto-save-file-name-transforms각 파일이 디렉터리를 가리키도록 합니다.

(setq auto-save-file-name-transforms
      '("\\`.*\\'" "~/tmp/emacs-auto-save-files/\\&" t))

답변2

특별히 vim 파일을 대상으로 하는 경우 이 backupdir변수를 사용하는 것이 좋습니다. :h backupdir설명하다:

'backupdir' 'bdir'      string  (default for Amiga: ".,t:",
                                 for MS-DOS and Win32: ".,c:/tmp,c:/temp"
                                 for Unix: ".,~/tmp,~/")
                        global
                        {not in Vi}
        List of directories for the backup file, separated with commas.
        - The backup file will be created in the first directory in the list
          where this is possible.  The directory must exist, Vim will not
          create it for you.
        [... snip ...]

.vimrc에서 다음 줄을 사용합니다.

set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp

또한, ~/.vim-tmp 디렉터리가 없으면 생성해야 합니다. 디렉터리가 자동으로 생성되지 않기 때문입니다.

답변3

단답형 ~로 끝나는 시제 삭제

find . -type f \( -iname "*~" \) -delete

또는 .swap 등과 같은 다른 것들도 있습니다.

find . -type f \( -iname "*.swp" \) -delete

관련 정보