Uma maneira seria usar xargs
xargs -a list.txt cp -t path/to/New_Folder/ -R --
Se você deseja usar um loop de shell, use while
, por exemplo.
while IFS= read -r dir; do
cp -t path/to/New_Folder -R -- "$dir"
done < list.txt
Eu tenho um arquivo .txt contendo 150 números de ID diferentes em cada linha assim:
12345
15876
19643
12586
Localizada no mesmo diretório do arquivo .txt, tenho 300 pastas e desejo copiar apenas as pastas cujos nomes correspondam aos listados no arquivo .txt em uma pasta chamada New_Folder. Existe uma maneira simples de fazer isso?
Uma maneira seria usar xargs
xargs -a list.txt cp -t path/to/New_Folder/ -R --
Se você deseja usar um loop de shell, use while
, por exemplo.
while IFS= read -r dir; do
cp -t path/to/New_Folder -R -- "$dir"
done < list.txt
Algo como:
for dir in 'cat textfile.txt'; do
cp -a "$dir" New_Folder/
echo Copied $dir
done
talvez?
Nota: se algum dos nomes de diretório em textfile.txt tiver espaços, ficará mais difícil.
Além disso, havia algo significativo nas linhas do seu arquivo .txt? Os diretórios em cada linha deveriam ser tratados de maneira diferente dos diretórios em outras linhas?
Tags xargs shell shell-script file-copy