Terminali kullanarak içeriği / dosyayı bir dizindeki tüm alt dizine kopyalayın


17

Bir dosyayı bir klasördeki tüm alt klasörlere kopyalamak istiyorum. Bunu komut satırıyla nasıl yapabilirim?

Yanıtlar:


26

Bir dosyayı tüm alt klasörlerde (ve belki de alt klasörlerinde, ne yapmak istediğinize bağlı olarak) geçerli çalışma dizinine yerleştirme

Bu, dosyayı tüm alt klasörlere koyar, ancak alt klasörlerine yerleştirmez:

for d in */; do cp water.txt "$d"; done

Bu, dosyayı water.txttüm alt klasörlere ve alt klasörlerine yerleştirir (water.txt dosyasının tüm kopyalarını kopyalamak istediğiniz dosya adına değiştirir)

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

Bu linuxquestions evresinden bilgi


14

Bu tek astarı kullanabilirsiniz:

find <target-dir> -type d -exec cp <the file> {} \;

derinliği 1 ile sınırlayın -> sadece en yakın dizinler

find <target-dir> -type d -maxdepth 1 -exec cp <the file> {} \;


2
Bu, tüm alt dizinleri yinelemeli olarak yapar, sadece hemen alt dizinleri değil
Anake

2
@Anake cevabımı güncelledi
ortang

Bu cevap mükemmel!
Jinhua Wang
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.