小编dav*_*_lr的帖子

如何在终端中查找并复制任意文件列表?

我现在正试图在终端中查找文件。我找到了很多关于如何查找特定模式的文件的答案,例如以特定扩展名或特定时间范围结尾的文件等。

不过,我一直试图弄清楚如何查找和复制多个任意文件,例如特定文件的列表。

举例来说,我有以下文件夹和文件

/Documents/Folder_1/内容:

file1.txt file2.txt file3.txt file4.txt
Run Code Online (Sandbox Code Playgroud)

/Documents/Folder_2/内容:

file5.txt file6.txt file7.txt
Run Code Online (Sandbox Code Playgroud)

/Documents/Folder_3/内容:

file8.txt, file9.txt
Run Code Online (Sandbox Code Playgroud)

我想做的是创建一个名为Folder_4并复制的新文件夹file2.txtfile5.txt然后file9.txt复制到该新文件夹。

有没有办法通过终端来做到这一点?

我尝试做的是制作文件名的文本列表并将其命名为 list.txt 之类的名称,例如

file2.txt
file5.txt
file9.txt
Run Code Online (Sandbox Code Playgroud)

并将该文本文件加载到“查找”命令中,例如如下所示:

find /home/usr/Documents -name $cat list.txt
Run Code Online (Sandbox Code Playgroud)

我认为我会将输出提供给文本列表或复制命令,但这似乎不起作用。

我想知道是否有任何方法可以通过 Find 命令查找多个任意文件,或者我是否以错误的方式思考这个问题?

编辑:只是想感谢您的回答并总结我最终解决这个问题的方式。我特别感谢有人向我解释 find 命令的设计目的不是接受多个没有 -o 标志的输入,这让我觉得不那么愚蠢了,因为无法弄清楚!

我最终做的是制作一个小 shell 脚本并要求用户输入并使用数组和 for 循环来迭代列表。

基本上我最终得到的脚本或多或少是这样的:

file1.txt file2.txt file3.txt file4.txt
Run Code Online (Sandbox Code Playgroud)

command-line find copy

5
推荐指数
2
解决办法
2439
查看次数

标签 统计

command-line ×1

copy ×1

find ×1