Sao chép nội dung / tệp vào tất cả thư mục con trong thư mục bằng terminal


17

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:


26

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


13

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> {} \;


2
Điều này thực hiện tất cả các thư mục con theo cách đệ quy, không chỉ các thư mục con trực tiếp
Anake

2
@Anake đã cập nhật câu trả lời của tôi
ortang

Câu trả lời này là tuyệt vời!
Kim Hoa Vương
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.