ค้นหาและลบไฟล์ชั่วคราวทั้งหมดในไดเรกทอรีผู้ใช้


12

ฉันใช้เสียงเรียกเข้าเป็นจำนวนมากและพื้นที่ของฉันมีไฟฟ้าขัดข้องมาก ดังนั้นผลลัพธ์คือฉันได้รับ*.swpไฟล์จำนวนมากกระจัดกระจายบนพีซีของฉัน

ฉันต้องการนามแฝงของrmคำสั่งที่จะลบไฟล์ทั้งหมดที่มีอย่างใดอย่างหนึ่ง.swp, ~, .netrwhist, .logหรือ.bakระบบส่วนขยายกว้าง(หรืออย่างน้อยในไดเรกทอรีบ้านของฉัน) คำสั่งควรลบไดเรคทอรีระบบไฟล์ / โฮมไดเร็กตอรี่แม้ว่าฉันจะเปิดอยู่~/Desktop.

ฉันจะใช้งานได้อย่างไร


วิธีการเกี่ยวกับ:find ./ -name \*\~ | xargs /bin/rm
เอ็มมานู Berg

นอกจากนี้ถ้า~ไฟล์ข้อผิดพลาดคุณ LS ls -Bชื่อแทน อย่างน้อยคุณจะไม่เห็นพวกเขา
Emanuel Berg

@EmanuelBerg find ./ -name \*\~ | xargs /bin/rmไม่ทำงานเมื่อฉันอยู่ที่ ~ / Desktop และมี~ไฟล์ใด ๆในโฮมไดเรกทอรี ดูคำถามของฉันสิ่งที่ฉันพูด
Santosh Kumar

3
สามคำ: แหล่งจ่ายไฟสำรอง ฉันไม่เปิดคอมพิวเตอร์โดยไม่มีเครื่อง
cjm

2
@ Santosh แล้วคุณต้องมี UPS ที่ดีกว่า รันไทม์ขั้นต่ำควรเป็น 5 นาที 8 วินาทีไม่ได้ให้เวลาคุณปิดคอมพิวเตอร์ (อย่างที่คุณสังเกตเห็น)
cjm

คำตอบ:


11

นี้จะลบไฟล์ทั้งหมดที่มีชื่อลงท้ายด้วย.swp, ~, .netrwhist, .logหรือ.bakที่ใดก็ได้ภายใต้ไดเรกทอรีบ้านของคุณ ไม่พร้อมต์, ไม่มีการยืนยัน, ไม่มีการกู้คืน, ไฟล์จะหายไปตลอด

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

(ฉันตั้งใจละเว้น*.logเพราะมันฟังดูอันตรายนี่ไม่ใช่ส่วนขยายทั่วไปสำหรับไฟล์ชั่วคราวและมีไฟล์ที่ไม่ใช่ชื่อชั่วคราวมากมาย)

หากระบบปฏิบัติการของคุณไม่ได้เป็นลินุกซ์แทนที่โดย-delete-exec rm {} +

คุณควรกำหนดค่า Vim ให้ใส่ swap file ในไดเรกทอรีเดียวโดยตั้งค่า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))

1

หากคุณกำหนดเป้าหมายไฟล์วีไอพีโดยเฉพาะฉันขอแนะนำให้คุณใช้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 หากยังไม่มีอยู่เพราะไม่ได้สร้างให้คุณ


ตกลงว่ามีประโยชน์ แต่ gedit สร้าง*~ไฟล์
Santosh Kumar

0

คำตอบสั้น ๆ ลบชั่วคราวซึ่งลงท้ายด้วย ~

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

หรือคนอื่น ๆ เช่น. swap ฯลฯ

find . -type f \( -iname "*.swp" \) -delete
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.