我可以使用保存到文件的文件名列表来复制/移动/删除列表中的每个文件吗?

我可以使用保存到文件的文件名列表来复制/移动/删除列表中的每个文件吗?

如何使用cp rmmv命令来操作保存到列表中的文件,例如像这样的文件:

ls Downloads/ | grep example > example.tmp

重点是在进行最终操作之前能够在文件编辑器中查看/编辑文件列表,然后删除 tmp。

因此,例如,下面的操作不起作用:

mkdir example_dir && cp -t example_dir < example.tmp 

有什么方法可以让我实现这个功能吗?

一旦我理解了这一点,我想将整个过程简化为更少的命令,但是......我只是首先尝试让它工作(并看看它在这个单独的步骤中如何工作)。

答案1

使用 bash 的命令替换:

$ ls -1
1
2
3
a
b
c

仅将 a、b、c 放入列表文件中。

$ ls -1 | grep -E "^[a-z]$" > list
$ cat list 
a
b
c

如果愿意,可以编辑列表文件,然后复制文件:

$ mkdir foo
$ cp $(cat list) -t foo
$ ls foo/
a  b  c

相关内容