Skopiuj zawartość / plik do wszystkich podkatalogów w katalogu przy użyciu terminala

17

Chcę skopiować plik do wszystkich podfolderów w folderze. Jak mogę to zrobić za pomocą wiersza polecenia?

Tylko 22lk94k943
źródło

Odpowiedzi:

26

Jak umieścić plik w bieżącym katalogu roboczym we wszystkich podfolderach (a może w ich podfolderach, w zależności od tego, co chcesz zrobić)

Spowoduje to umieszczenie pliku we wszystkich podfolderach, ale nie w ich podfolderach:

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

Spowoduje to umieszczenie pliku water.txt(zmień wszystkie wystąpienia pliku water.txt na nazwę pliku, który chcesz skopiować) we wszystkich podfolderach i ich podfolderach

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

Informacje z tego wątku linuxquestions

Jeszcze inny użytkownik
źródło
13

Możesz użyć tej linijki:

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

ogranicz głębokość do 1 -> tylko bezpośrednie katalogi

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

ortang
źródło
2
Robi to rekursywnie wszystkie podkatalogi, nie tylko bezpośrednie podkatalogi
Anake
2
@Anake zaktualizował moją odpowiedź
ortang
Ta odpowiedź jest doskonała!
Jinhua Wang