Bunu , sembolik olanlar dışındaki tar
tüm dosyaların bir listesini sağlamak protTests
için yapabilirsiniz:
find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
tar --null --files-from - -cvf protTests.tar
Bu arada, mevcut komutunuz:
tar -cvf protTests.tar protTests/*
içindeki tüm dosyaları arşivlemez protTests
, yalnızca adları başlamamış .
olanları (gizli olmayanları) arşivler . *
Glob operatör isimleri ile başlayan dosyaları atlar .
tasarım gereği. Komut ayrıca, protTests
çok sayıda dosya (binden fazla) varsa, protTests/*
komut satırına sığacak kadar çok bağımsız değişkene genişletilebilme sorununa sahiptir .
Bunun gibi daha basit bir komutun bu sorunlardan hiçbiri olmayacaktır:
tar -cvf protTests.tar protTests
--files-from
, bu gtar'dan bir seçenek, bu yüzden böyle bir tavsiyede bulunuyorsunuz, bunun gtar'a özgü olduğunu daha iyi belirtin. Bulun birincil özelliği yoktur-not
, bu başka bir taşınabilir olmayan GNUizmdir. Genel olarak, ayrı bir arama çağrısı kullanmak kötü bir fikirdir. Bu, dosya adındaki komik karakterlerle ilgili sorunlar verebilir ve dosya sistemini taramak için hem bul hem de katran ihtiyacı olduğundan kesinlikle düşük bir performans sağlar. Bu sorunlar, libfind kullanan ve bu nedenle find kodunu içeren yıldız gibi programlar için geçerli değildir.