Aşağıdaki komutu kullanarak 30 günden eski bir dizini, dosyaları ve dizinleri silerim ve kimse dosyaları geri istemezse birkaç hafta sonra silebileceğim bir arşiv dizinine taşırım. Hedef dizin, kullanıcı adına göre alt dizinlere sahiptir, bu nedenle arşiv dizini de olacaktır.
Kullandığım komut bu:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Ask ubuntu ile ilgili bir soruyu cevaplamak için bunun değiştirilmiş bir versiyonunu önerdim, başka bir kullanıcı daha hızlı (ve daha doğru?) Olduğu \;
için satır sonunu değiştirmek için kodu düzenledi +
. Buraya bakın
Ancak, komut +
bu şekilde kullandığım ancak gerçek komutta değilse bu şekilde kullanılır. Eğer denerseniz bir hata mesajı alıyorum:-exec
ls -lh
+
find: missing argument to '-exec'
Neden bu şekilde davrandığını veya doğru komutun ne olacağını anlamıyorum. Lütfen bir komut düzeltmesi göndermeyin, sadece bir öneriyi körü körüne takip etmek yerine anlamak istiyorum.
+
aynı komuta birden fazla argüman sağlar, ama mv
bununla baş edemiyorum!