Mengapa yang berikut tidak menyalin file ke folder tujuan?
# find /home/shantanu/processed/ -name '*2011*.xml' -exec cp /home/shantanu/tosend {} \;
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
\;
?find -iname '*.mp3' -mtime -1 -exec cp {} /home/my_path/ \;
Adakah yang salah dengan perintah ini? itu tidak berfungsisaya menghadapi masalah seperti ini ...
Sebenarnya, dalam dua cara Anda dapat memproses
find
outputcopy
perintah dalam perintahJika
find
output perintah tidak mengandung spasi apa pun yaitu jika nama file tidak mengandung spasi di dalamnya maka Anda dapat menggunakan perintah yang disebutkan di bawah ini:Sintaksis:
find <Path> <Conditions> | xargs cp -t <copy file path>
Contoh:
find -mtime -1 -type f | xargs cp -t inner/
Tetapi sebagian besar waktu file data produksi kami mungkin mengandung ruang di dalamnya. Jadi sebagian besar waktu di bawah perintah yang disebutkan lebih aman:
Sintaksis:
find <path> <condition> -exec cp '{}' <copy path> \;
Contoh
find -mtime -1 -type f -exec cp '{}' inner/ \;
Pada contoh kedua, bagian terakhir yaitu semi-colon juga dianggap sebagai bagian dari
find
perintah, yang harus diloloskan sebelum menekan tombol enter. Kalau tidak, Anda akan mendapatkan kesalahan seperti iniDalam kasus Anda, sintaks perintah salin salah untuk menyalin file find
/home/shantanu/tosend
. Perintah berikut akan berfungsi:sumber
find
/xargs
,find <Path> <Conditions> -print0 | xargs -0 -r cp -t <copy file path>
. Contoh:find -mtime -1 -type f -print0 | xargs -r0 cp -t inner/
Anda perlu menggunakan
cp -t /home/shantanu/tosend
untuk mengatakan bahwa argumennya adalah direktori target dan bukan sumber. Anda kemudian dapat mengubahnya-exec ... +
agarcp
dapat menyalin file sebanyak mungkin sekaligus.sumber
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp --target-directory=/home/shantanu/tosend {} \;
sumber
Alasan untuk kesalahan itu adalah bahwa Anda mencoba untuk menyalin folder yang memerlukan opsi -r juga untuk cp Terima kasih
sumber