Sử dụng Bash
Vì vậy, giả sử tôi có một loạt các tệp được đặt ngẫu nhiên trong thư mục mẹ ~/src
, tôi muốn lấy tất cả các tệp khớp với một hậu tố nhất định và di chuyển (hoặc sao chép) chúng vào một ~/dist
thư mục.
Giả sử cho mục đích này rằng tất cả các tên tệp đều có quy ước đặt tên này:
<filename_prefix>.<filename_suffix>
Tôi phát hiện ra rằng đây là một cách nhanh chóng để lấy tất cả các tệp với một tệp cụ thể filename_suffix
và đặt chúng vào một thư mục dist:
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
Bây giờ là một bước nữa ... làm thế nào tôi có thể sử dụng đầu ra của find, trong trường hợp này filename
và sử dụng filename_prefix
để tạo một thư mục cùng tên ~/dist
và sau đó di chuyển (hoặc sao chép) tất cả các tệp có tiền tố đó vào thư mục thích hợp?
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
Về cơ bản, làm cách nào để thay đổi lệnh trên (hoặc có thể sử dụng lệnh khác), để tạo cấu trúc như thế này
(ĐẦU RA)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
từ một cây thư mục như thế này?
(ĐẦU VÀO)
~/src/xrt/people.xrt
~/src/xrt/games.xrt
~/src/conf/games.ini
~/src/pack/monkeys.xrt
~/src/e344/games.moo
~/src/e344/monkeys.moo
~/src/en-us/monkeys.ini