Ini pertanyaan sederhana. Saya mencoba untuk menyalin semua file di direktori saat ini yang dimulai dengan "sumbu-2" dan diakhiri dengan ".jar" ke direktori target, katakanlah itu ~ / MyDirectory. Pikiran pertama saya adalah mencoba
cp '^axis2.*jar$' ~/MyDirectory
Tapi ini tidak berhasil. Saya bahkan tidak yakin dapat menggunakan ekspresi reguler dengan cp. Saya juga belum benar-benar menggunakan ekspresi reguler untuk sementara waktu dan sintaks saya bisa benar-benar mati. Ketika saya mencoba cp ini hanya menampilkan pesan kesalahan "Tidak ada file atau direktori". Adakah yang punya saran tentang bagaimana cara melakukannya? Terima kasih!
sumber
Jika Anda memiliki GNU
find
dan GNUcp
, Anda dapat menggunakan ekspresi reguler seperti pada perintah berikut:Ini bisa berguna jika baik pola glob maupun bash extended pola glob tidak sesuai dengan kebutuhan Anda.
sumber
Saya sangat suka sintaks regex dari
rename
skrip perl (oleh Robin Barker dan Larry Wall), misalnya:Saya hanya menginginkan hal yang sama persis dengan perintah salin:
copy "s/OldFile/NewFile/" OldFile*
Jadi saya menggandakan skrip itu dan mengubah pernyataan ganti nama untuk disalin
File::Copy
. Et voila! Perintah salin dengan sintaks perl-regex: jcward / vopy .sumber