Как скопировать файл от списка до новой папки?

У меня есть файл file1.txt, расположенный в испытательной папке, содержащей местоположение файлов изображений. Я хочу прочитать список и скопировать файлы изображений в новую папку, test_folder.

Записи в file1.txt похожи:

./trial/data/image1.jpg
./trial/data/image2.jpg

и т.д.

Я пытался использовать подобный вопрос решить проблему: копируйте/перемещайте список файлов к новому каталогу

Попытка

while read file; do cp "$file" /trial/test_folder; done < /trial/file1.txt

Я получаю ошибку "удар: /trial/file1.txt: Никакой такой файл или каталог". Любая справка была бы большой!

2
задан 22 March 2019 в 13:20

2 ответа

Ошибка, которую Вы получаете, состоит в том, потому что Вы читаете /trial/file1.txt и нет ./trial/file1.txt. Это означает, что оболочка пытается найти каталог названным trial который находится под корневым каталогом (/). Если Вы хотите путь, который является относительно Вашего текущего каталога, можно просто использовать:

while read file; do cp "$file" trial/test_folder; done < trial/file1.txt

Или,

while read file; do cp "$file" ./trial/test_folder; done < ./trial/file1.txt

Или, можно использовать полный путь:

while read file; do cp "$file" /home/shane/trial/test_folder; done < /home/shane/trial/file1.txt
4
ответ дан 2 December 2019 в 01:42

Иначе должен использовать xargs и cp --target-directory=... таким образом:

xargs -r <trial/file1.txt cp --target-directory=./trial/test_folder
2
ответ дан 2 December 2019 в 01:42

Другие вопросы по тегам:

Похожие вопросы: