Jika Anda ingin memindahkan semua file di dalam hierarki direktori ke direktori tujuan tunggal, dalam bash ≥4 (masukkan shopt -s globstarAnda ~/.bashrc) atau zsh:
mkdir ~/new-directory
mv -i **/*.xxx ~/new-directory
Dalam cangkang lain:
mkdir ~/new-directory
find . -name '*.xxx' -exec mv -i {} ~/new-directory \;
Cara membaca findperintah ini :
.: melintasi direktori saat ini
-name '*.xxx': bertindak pada file yang namanya cocok dengan pola ini
-exec … \;: lakukan perintah ini pada setiap file, ganti {}dengan path ke file
Ada perintah yang lebih kompleks menggunakan finditu lebih cepat jika Anda memiliki banyak file karena tidak perlu meminta mvproses terpisah untuk setiap file:
find . -name '*.xxx' -exec sh -c 'mv -i "$@" "$0"' ~/new-directory {} +
The +di bagian akhir memberitahu finduntuk menjalankan perintah pada beberapa file sekaligus. Karena findhanya bisa meletakkan nama file di akhir baris perintah, dan mvperlu memiliki direktori tujuan yang terakhir, kami menggunakan shell perantara untuk mengatur ulang argumen ( "$0"adalah argumen pertama ke shell ~/new-directory,, dan "$@"argumen berikutnya datang dari findPerluasan {}).