Giả sử rằng bạn có một loạt các .docx
, .mp3
, .txt
và .xlsx
các file lưu trữ trong cấu trúc thư mục này:
/files/
/files/dir1/
/files/dir1/dir11/
/files/dir1/dir12/
/files/dir1/dir13/
/files/dir2/
/files/dir3/
/files/dir3/dir31/
/files/dir3/dir32/
/files/dir4/
/files/dir5/
/files/dir51/
/files/dir52/
/files/dir53/
/files/dir54/
... và bạn muốn truy xuất lại tất cả các thư mục đó để sao chép tất cả .mp3
các tệp tìm thấy vào /home/me/music/
nhưng bạn không muốn bảo tồn cây thư mục đó ở đích (tức là bạn muốn tất cả .mp3
các tệp tìm thấy được sao chép vào /home/me/music/
thay vì sao chép vào các thư mục tương ứng chẳng hạn như /home/me/music/dir1/
, /home/me/music/dir1/dir11/
et cetera).
Trong trường hợp như vậy, tại terminal terminal (bash) trước tiên hãy chạy lệnh này để truy cập vào thư mục gốc của tìm kiếm tệp của bạn:
cd /files
... và sau đó chạy lệnh này:
for i in `find . -iname '*.mp3'`; do cp $i /home/me/music/; done
Trong trường hợp bạn làm muốn giữ cây thư mục của nguồn trong đích, chạy lệnh này để thay thế (sau khi chạy cd /files
):
find . -iname '*.mp3' | cpio -pdm /home/me/music/
Trên lệnh trên, việc tìm kiếm là case-insensitive (tức là các trận đấu .mp3
, .MP3
, .mP3
và .Mp3
). Sử dụng -name
thay vì -iname
nếu bạn muốn tìm kiếm phân biệt chữ hoa chữ thường (ví dụ: sử dụng -name
cho .mp3
chuỗi ký tự sẽ khớp với các tệp kết thúc .mp3
nhưng không phải là kết thúc bằng .MP3
, .mP3
cũng không .Mp3
).
-iname
thay vì-name
trong trường hợp bất kỳ tập tin kết thúc.MP3
.