Tôi muốn sao chép một tập tin vào tất cả các thư mục con trong một thư mục. Làm thế nào tôi có thể làm điều này với dòng lệnh?
Tôi muốn sao chép một tập tin vào tất cả các thư mục con trong một thư mục. Làm thế nào tôi có thể làm điều này với dòng lệnh?
Câu trả lời:
Cách đặt một tệp trong thư mục làm việc hiện tại trong tất cả các thư mục con (và có thể cả các thư mục con của chúng, tùy thuộc vào những gì bạn muốn làm)
Điều này sẽ đặt tệp trong tất cả các thư mục con, nhưng không đặt các thư mục con của chúng:
for d in */; do cp water.txt "$d"; done
Điều này sẽ đặt tệp water.txt
(thay đổi tất cả các phiên bản của water.txt thành tên tệp bạn muốn sao chép) trong tất cả các thư mục con và các thư mục con của chúng
for i in ./* # iterate over all files in current dir
do
if [ -d "$i" ] # if it's a directory
then
cp water.txt "$i" # copy water.txt into it
fi
done
Thông tin từ chủ đề linuxquestions này
Bạn có thể sử dụng một lớp lót đó:
find <target-dir> -type d -exec cp <the file> {} \;
giới hạn độ sâu đến 1 -> chỉ các thư mục ngay lập tức
find <target-dir> -type d -maxdepth 1 -exec cp <the file> {} \;