相关疑难解决方法(0)

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

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

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

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

/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
查看次数

shell打印所有目录名称匹配模式的修改日期

我想编写一个 shell 程序,它将遍历名称与这样的模式匹配的所有文件夹:

sudo sh  shell.sh   pub 
Run Code Online (Sandbox Code Playgroud)

运行时,脚本将查找名称包含的所有文件夹pub并打印其修改日期。我希望有代码可以打印出如下图所示的结果: 在此处输入图片说明 我有这个代码,但它没有给我我期望的结果。

echo  'the folder '$1' was modified at ';
 find  -type d -name 'kam*'  -exec stat -c '%y %n' '{}' \;
Run Code Online (Sandbox Code Playgroud)

我必须遍历每个文件夹并输出文本echo 'the file '$1' was modified at ';并打印图像中的日期。

我想要这样的结果:

netcom@hotspot:~$ bash script.sh testRegex Pub
the folder testRegex was modified on may 15 01:19
 the folder Public was modified on may 19 01:19 
  the folder Pubos was modified on may 19 01:19 
Run Code Online (Sandbox Code Playgroud)

command-line bash 14.04

4
推荐指数
2
解决办法
703
查看次数

标签 统计

command-line ×2

14.04 ×1

bash ×1

copy ×1

find ×1