【发布时间】:2016-11-03 06:03:30
【问题描述】:
我的list.txt 文件有几百个条目指向位于/tmp 分区上的文件名。我正在收集以“a”开头的文件,例如apples.txt、andromeda.txt 等,以将它们复制到目录中。
但是,我不想复制 所有 文件,而只想复制找到的 第一个 文件。它不必排序;只是第一个。
我该怎么做?欢迎任何提示。
#!/bin/bash
for i in `/usr/bin/cat /tmp/list.txt`
do
find /tmp/$i -name a* -exec cp {} /tmp/found_first_file_start_with_a \;
done
【问题讨论】:
-
你失去了我。如果
/tmp/list.txt包含文件 名称,为什么要使用find(它将目录作为位置参数)? -
您不只是在文件 (
list.txt) 中搜索名称的最后一个组件以a开头的第一行吗?使用find似乎很浪费,除非在您制作副本之前可能已经删除了一些名称(如果这是您的问题的一部分,有一些方法可以解决)。也许sed -n '\%/a[^/]*$%{p;q;}' /tmp/list.txt? -
接受的答案与我对您问题的解释不符:
for all subdirectories of /tmp given in /tmp/list.txt copy a file starting with the letter a to another directory。您能否编辑您的问题,以便其他人了解您想要什么以及您使用 list.txt 的原因?