tar
'My_directory' adındaki bir dizindeki dosyaları toplamaya çalışıyorum ve orjinali komutu kullanarak kaldırıyorum:
tar -cvf files.tar my_directory --remove-files
Bununla birlikte, dizindeki tek tek dosyaları kaldırıyor, dizinin kendisini değil (komutta belirttiğim). Burada ne özlüyorum?
DÜZENLE:
Evet, 'remove-files' seçeneğinin oldukça değişmez olduğunu düşünüyorum. Yine de adam sayfasını bu noktada belirsiz buldum. (Linux'ta dizinler ve dosyalar arasında pek bir şey ayırt etme eğiliminde değilim ve bazen aynı şey olmadığını unutuyorum). Mutabakata benziyor, dizinleri kaldırmıyor.
Bununla birlikte, bu soruyu sormak için asıl ilgi çekici noktam, tar'nın mutlak yolları kullanmasından kaynaklanıyor. Sıkıştırılacak bir dosyaya / dosyalara göreceli bir yol belirtmeniz gerektiğinden, bu nedenle düzgün şekilde tar yapmak için ana dizine geçmelisiniz. Gördüğüm gibi herhangi bir şekilde takip eden 'rm' komutu bu durumda potansiyel olarak tehlikelidir. Böylece katranın kaldırmasını sağlayarak işleri basitleştirmeyi umuyordum.
Örneğin, yedeklenecek dizinin (ör. Tar) kabuk değişkeni olarak eklendiği bir yedekleme komut dosyası düşünün. Bu kabuk değişkeni değeri hatalı bir şekilde girildiyse, sonucun en son bulunduğunuz dizindeki dosyaları silebilir.