Xác định vị trí và xóa tất cả các tệp tạm thời trong thư mục người dùng


12

Tôi sử dụng vim rất nhiều, và khu vực của tôi bị mất điện rất nhiều. Vì vậy, kết quả là tôi nhận được nhiều *.swptệp nằm rải rác trên PC.

Tôi muốn có một bí danh của rmlệnh mà loại bỏ tất cả các file với một trong hai .swp, ~, .netrwhist, .loghoặc .bakmở rộng hệ thống rộng (hoặc ít nhất trong thư mục chính của tôi) . Lệnh sẽ xóa thư mục hệ thống tập tin / nhà rộng ngay cả khi tôi đang bật ~/Desktop.

Làm thế nào tôi có thể thực hiện như vậy?


Làm thế nào về:find ./ -name \*\~ | xargs /bin/rm
Emanuel Berg

Ngoài ra, nếu các ~tập tin lỗi bạn, bí danh ls đến ls -B. Ít nhất bạn sẽ không nhìn thấy chúng.
Emanuel Berg

@EmanuelBerg find ./ -name \*\~ | xargs /bin/rmkhông hoạt động khi tôi ở trên ~ / Desktop và có bất kỳ ~tập tin nào trong thư mục chính. Xem câu hỏi của tôi, những gì tôi nói.
Santosh Kumar

3
Ba từ: Cung cấp điện liên tục . Tôi không bật máy tính mà không có máy tính.
cjm

2
@Santosh, sau đó bạn cần một UPS tốt hơn. Thời gian chạy tối thiểu phải là 5 phút. 8 giây thậm chí không cho bạn thời gian để tắt máy tính (như bạn rõ ràng đã nhận thấy).
cjm

Câu trả lời:


11

Điều này sẽ xóa tất cả các file với một tên kết thúc bằng .swp, ~, .netrwhist, .loghoặc .bakbất cứ nơi nào trong thư mục chính của bạn. Không nhắc nhở, không xác nhận, không phục hồi, các tập tin sẽ biến mất vĩnh viễn.

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

(Tôi cố tình bỏ qua *.logvì nghe có vẻ nguy hiểm, đây không phải là tiện ích mở rộng phổ biến cho các tệp tạm thời và có rất nhiều tệp không tạm thời có tên đó.)

Nếu hệ điều hành của bạn không phải là Linux, hãy thay thế -deletebằng -exec rm {} +.

Có lẽ bạn nên cấu hình Vim để đặt các tệp hoán đổi của nó trong một thư mục bằng cách đặt directorytùy chọn :

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

Tạo thư mục đầu tiên. Các //cuối cùng làm cho tên tập tin hoán đổi bao gồm vị trí thư mục của tập tin gốc, để các file có cùng tên trong thư mục khác nhau không gây ra một vụ tai nạn.

Bạn có thể làm điều tương tự cho các tập tin sao lưu với backupdirtùy chọn , mặc dù nó có ý nghĩa ít hơn nhiều.

Nếu bạn sử dụng Emacs, hãy đặt auto-save-file-name-transformsđể trỏ mọi tệp vào một thư mục.

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

1

Nếu bạn đang nhắm mục tiêu các tệp vim cụ thể, tôi khuyên bạn nên sử dụng backupdirbiến. :h backupdirnói:

'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 ...]

Tôi sử dụng dòng này trong .vimrc của tôi:

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

Ngoài ra, bạn cần tạo thư mục ~ / .vim-tmp nếu nó không tồn tại, vì không tạo ra thư mục đó cho bạn.


OK, điều đó hữu ích. Nhưng gedit tạo *~tập tin.
Santosh Kumar

0

Câu trả lời ngắn Xóa tạm thời kết thúc bằng ~

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

Hoặc những người khác như .swap vv ..

find . -type f \( -iname "*.swp" \) -delete
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.