cara menghapus semua file yang dibuat n menit yang lalu di linux

11

Saya kira dalam kebanyakan kasus ketika mengekstrak tar tarive, kita akan mendapatkan direktori dengan nama yang sama dengan file arsip tetapi akhiran yang berbeda. tetapi dalam beberapa kasus sial, seperti yang saya temui hari ini, setelah mengekstrak bilah tar saya menemukan banyak file yang tersebar di direktori kerja, yang benar-benar mengganggu.

jadi yang ingin saya pelajari dari Anda adalah bagaimana saya bisa memindahkan file yang baru dibuat itu? Saya tahu harus ada pendekatan mewah "find plus rm" di sana, tapi saya tidak tahu persis bagaimana caranya.

HaiYuan Zhang
sumber

Jawaban:

18

Aku ingin tahu apa man find akan berkata. Maka Anda bahkan dapat menunjukkan upaya Anda.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • Itu -type f digunakan untuk menentukan hanya file biasa yang dipilih.
  • Itu -cmin -1 status file terakhir diubah dalam waktu kurang dari satu menit terakhir.
  • Itu -delete flag memberitahu menemukan untuk menghapus semua file elektronik Anda di alam semesta yang diketahui atau sesuatu seperti itu, jadi berhati-hatilah saat menggunakannya.

Pertama melakukan uji coba tanpa itu -delete bendera sangat disarankan.

Catatan -delete adalah ekstensi non-portabel.

Saya sarankan membaca find manpage sebelum menggunakan ini, karena mencakup berbagai gotcha dan peringatan yang mungkin berlaku dalam situasi Anda.

mctylr
sumber
Bagus! -hapus terlihat lebih mudah daripada -exec rm {} \;
PJ Brunet
+1 untuk meluangkan waktu untuk menjelaskan pilihan opsi
Jad S
4
find . -mtime -60s -exec mv {} /dest/dir \;

Menemukan setiap file dalam direktori saat ini (dan sub direktori) yang telah dimodifikasi dalam 60 detik terakhir dan memindahkannya ke / dest / dir.

skarface
sumber
1
Hati-hati, file arsip yang diekstraksi dapat mempertahankan tanggal modifikasi asli. Terbaik untuk menggunakan waktu pembuatan.
Cem Kalyoncu
@CemKalyoncu poin bagus.
skarface
0

Cara termudah (asalkan Anda tidak memiliki antarmuka grafis) akan digunakan mc . Itu dapat mengurutkan file berdasarkan tanggal.

Anda juga dapat menghapus file yang ada di tar dari baris perintah:

> rm $( tar -ztf mytar.tar.gz )

(-ztf) adalah untuk file tar.gz. Anda dapat menggunakan (-tf) untuk tar normal, atau (-jtf) untuk file tar.bz2.

Jika daftar file terlalu besar, dan perintah di atas tercekik, Anda bisa menggunakan xargs:

> tar -ztf mytar.tar.gz | xargs rm
Sunny
sumber
wow, salah saya - saya tidak benar-benar membaca pertanyaan - Anda harus memindahkannya, tidak menghapus (tolong, perbaiki judulnya, ini menyesatkan). Saya kira Anda masih bisa menghapusnya, lalu membuat dir baru, dan untar ada :). Lagi pula, pindah = salin + hapus.
Sunny