Anda bisa melakukan ini, untuk menyediakan tar
daftar semua file di dalamnya protTests
kecuali yang symlink:
find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
tar --null --files-from - -cvf protTests.tar
Omong-omong, perintah Anda yang ada:
tar -cvf protTests.tar protTests/*
tidak akan mengarsipkan semua file protTests
, itu hanya akan mengarsipkan yang namanya tidak dimulai .
(yang tidak disembunyikan). The *
Operator gumpal melompat file yang namanya dimulai dengan .
dengan desain. Perintah juga memiliki masalah bahwa jika protTests
memiliki banyak file (lebih dari ribuan), maka protTests/*
dapat memperluas terlalu banyak argumen agar sesuai pada baris perintah.
Perintah yang lebih sederhana seperti ini tidak akan memiliki masalah tersebut:
tar -cvf protTests.tar protTests
--files-from
, ini adalah opsi dari gtar, jadi Anda memberikan saran, lebih baik menyebutkan bahwa ini khusus gtar. Temukan tidak memiliki yang utama-not
, ini adalah GNUisme non-portabel lainnya. Secara umum, itu adalah ide yang buruk untuk menggunakan panggilan pencarian terpisah. Ini mungkin memberikan masalah dengan karakter lucu dalam nama file dan itu pasti memberikan kinerja yang rendah karena keduanya menemukan dan kebutuhan tar untuk memindai sistem file. Masalah-masalah ini tidak berlaku untuk program-program seperti bintang yang menggunakan libfind dan dengan demikian memasukkan kode find.