如何将文件从列表复制到新文件夹?

Sha*_*e B 4 command-line bash copy

我有一个文件file1.txt位于包含图像文件位置的试用文件夹中。我想阅读列表,并将图像文件复制到一个新文件夹test_folder

file1.txt 中的条目如下所示:

./trial/data/image1.jpg
./trial/data/image2.jpg
Run Code Online (Sandbox Code Playgroud)

等等。

我尝试使用类似的问题来解决问题:Copy/move a list of files to a new directory

试图

while read file; do cp "$file" /trial/test_folder; done < /trial/file1.txt
Run Code Online (Sandbox Code Playgroud)

我收到错误“bash:/trial/file1.txt:没有这样的文件或目录”。任何帮助都会很棒!

ter*_*don 5

你得到的错误是因为你正在阅读/trial/file1.txt而不是./trial/file1.txt. 这意味着 shell 正在尝试trial在根目录 ( /)下查找名为的目录。如果你想要一个相对于你当前目录的路径,你可以使用:

while read file; do cp "$file" trial/test_folder; done < trial/file1.txt
Run Code Online (Sandbox Code Playgroud)

或者,

while read file; do cp "$file" ./trial/test_folder; done < ./trial/file1.txt
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用完整路径:

while read file; do cp "$file" /home/shane/trial/test_folder; done < /home/shane/trial/file1.txt
Run Code Online (Sandbox Code Playgroud)