Ini bekerja untuk saya ketika mencari file dengan tanggal tertentu:
ls | grep '2018-08-22' | xargs -I '{}' cp '{}' ~/data/lidar/tmp-ajp2/
Untuk menyalin file ke direktori grep yang ditemukan, gunakan -printf untuk menampilkan direktori dan -i untuk menempatkan argumen perintah dari xarg (setelah pipa)
find ./ -name 'filename.*' -print '%h\n' | xargs -i cp copyFile.txt {}
ini menyalin copyFile.txt ke semua direktori (dalam ./) yang berisi "nama file"
grep -l -r "TWL" --exclude=*.csv* | xargs cp -t ~/data/lidar/tmp-ajp2/
Penjelasan:
- grep
-l
opsi untuk menampilkan nama file saja - xargs untuk mengonversi daftar file dari masukan standar ke argumen baris perintah
- cp
-t
opsi untuk menentukan direktori target (dan menghindari penggunaan placeholder)
Anda memerlukan xargs dengan placeholder opsi:
grep -r "TWL" --exclude=*.csv* | xargs -I '{}' cp '{}' ~/data/lidar/tmp-ajp2/
biasanya jika Anda menggunakan xargs
, itu akan menempatkan keluaran setelah perintah, dengan placeholder ('{}'
dalam hal ini), Anda dapat memilih lokasi penyisipannya, bahkan berkali-kali.