Linux'ta n dakika önce oluşturulmuş tüm dosyalar nasıl kaldırılır


15

Çoğu durumda, bir tar arşivi çıkarılırken, arşiv dosyasıyla aynı ada ancak farklı soneklere sahip bir dizin alırız. Ancak bazı şanssız durumlarda, bugün tanıştığım gibi, bir tarball çıkardıktan sonra, çalışma dizinine yayılmış çok sayıda dosya buluyorum, bu bir sıkıntı.

Sizden öğrenmek istediğim şey şu - yeni oluşturulan dosyaları nasıl taşıyabilirim? Orada bazı "bulmak artı rm" fantezi bir yaklaşım olması gerektiğini biliyorum, ama tam olarak nasıl bilmiyorum.

Yanıtlar:


25

Ne man finddiyeceğini merak ediyorum . O zaman çabalarını bile gösterebilirsin.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • -type fSadece düzenli dosyalar seçilir belirtmek için kullanılır.
  • -cmin -1Dosyanın durumu son geçmiş (bir) dakikadan az bir sürede değiştirildi.
  • -deleteBayrak kullanırken, siler için bilinen evrenin ya da böyle bir şey tüm elektronik dosyaları bulmak kullanımı dikkatli böylece söyler.

İlk çalıştırmak bir test yaparak olmadan-delete bayrak şiddetle tavsiye edilir.

Not -delete, taşınabilir olmayan bir uzantıdır.

Bunu findkullanmadan önce bu sayfayı okumanızı tavsiye ederim , çünkü sizin durumunuzda geçerli olabilecek çeşitli anlaşmaları ve uyarıları kapsar.


Güzel! -silmek -exec rm {} \ 'den daha kolay görünüyor;
PJ Brunet

Seçenek seçeneklerini açıklamak için zaman ayırdığınız için +1
Jad S

5
find . -mtime -60s -exec mv {} /dest/dir \;

Geçerli dizindeki (ve alt dizinlerdeki) son 60 saniyede değiştirilen her dosyayı bulur ve / dest / dir klasörüne taşır.


3
Dikkatli, çıkarılan arşiv dosyaları orijinal değişiklik tarihini koruyabilir. Oluşturma zamanını kullanmak için en iyisi.
Cem Kalyoncu

@CemKalyoncu harika bir nokta.
skarface

0

Kolaylık yolu (grafik arabiriminiz yoksa) mc kullanmak olacaktır . Dosyaları tarihe göre sıralayabilir.

Katrandaki dosyaları komut satırından da silebilirsiniz:

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

(-ztf) tar.gz dosyaları içindir. Normal tars için (-tf) veya tar.bz2 dosyaları için (-jtf) kullanabilirsiniz.

Dosyaların listesi çok büyükse ve yukarıdaki komut boğuluyorsa, xargs kullanabilirsiniz:

> tar -ztf mytar.tar.gz | xargs rm

vay, benim kötü - ben gerçekten soruyu okumadım - onları taşımak gerekir, silmek değil (pls, başlığı düzeltmek, yanıltıcı). Sanırım onları hala silebilirsiniz, sonra yeni bir dizin oluşturabilir ve orada açabilirsiniz :). Sonuçta, move = copy + delete.
Güneşli
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.