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?

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


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.