Voglio copiare un file in tutte le sottocartelle in una cartella. Come posso farlo con la riga di comando?
Voglio copiare un file in tutte le sottocartelle in una cartella. Come posso farlo con la riga di comando?
Risposte:
Come mettere un file nella directory di lavoro corrente in tutte le sottocartelle (e forse le loro sottocartelle, a seconda di cosa si desidera fare)
Questo metterà il file in tutte le sottocartelle, ma non nelle loro sottocartelle:
for d in */; do cp water.txt "$d"; done
Questo metterà il file water.txt
(cambia tutte le istanze di water.txt nel nome del file che vuoi copiare) in tutte le sottocartelle e le relative sottocartelle
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
Informazioni da questo thread di domande su Linux
È possibile utilizzare quel one-liner:
find <target-dir> -type d -exec cp <the file> {} \;
limita la profondità a 1 -> solo le directory immediate
find <target-dir> -type d -maxdepth 1 -exec cp <the file> {} \;