Saya mencoba membuat skrip yang dapat memampatkan file dengan ekstensi tertentu di sejumlah direktori menjadi satu tar-ball. Saat ini yang saya miliki di file skrip adalah:
find "$rootDir" -name '*doc' -exec tar rvf docs.tar {} \;
Di mana $rootDir
jalur dasar untuk mencari.
Ini bagus kecuali jalur absolut dalam file tar. Saya lebih suka jalur relatif terhadap $rootDir
. Bagaimana saya bisa melakukan ini?
Contoh saat ini tar -tf docs.tar
di mana $rootDir
adalah /home/username/test
keluaran:
home/username/test/subdir/test.doc
home/username/test/second.doc
Yang saya inginkan adalah:
./subdir/test.doc
./second.doc
cd $rootDir
dancd -
(setidaknya dalambash
).( cd $rootDir ; find ... )
juga akan mungkin, yaitu melakukan semuanya dalam subkulit.Anda dapat menggunakan
%P
format dalam-printf
arahan:akan ditampilkan dalam contoh Anda:
Anda kemudian dapat menggunakan
find
daftar ini dalamfor
ekspresi, untuk menjalankan perintah exec kami, seperti pada:sumber