【发布时间】:2022-01-06 07:21:34
【问题描述】:
所以 script2 是:
find /some_directory -type f -not -iname "*.pdf" -exec bash -c './script "{}"' \; -print > temp_file
while read line
do
mkdir -p result"$(dirname "$line")"
cp "$line" ~/result"$(dirname "$line")"/$(basename "$line" .txt).pdf
done < temp_file
rm temp_file
./脚本是file "$1"|grep -q PDF
这两个组合应该找到实际上是 PDF 文件的 .txt 文件,然后将它们复制到某个结果目录并将它们重命名为 .pdf 文件。但文件应位于:result/their/original/directories/file.pdf。 (如果原来是some_directory/their/original/directories/file.txt,也有一些目录有空间,所以".."很多)
完成了,可以了,但问题是:没有mkdir怎么办?
我尝试了很多东西,但似乎都没有用,而且我读到的每一篇文章都说它可以通过使用 mkdir 来完成(但是因为我的教授要求它在没有 mkdir 的情况下完成,我很确定它可以完成。我不必这样做,但我想知道如何完成)。
也许可以通过管道查找? (一些参数会先打印目录,然后将它们一个一个复制,然后再复制文件?)我在这方面浪费了很多时间,如果没有正确的答案就退出它会很可惜。
【问题讨论】:
-
在 cp 命令中使用
-a标志。 -
@kometen 你的意思是把 -a 添加到 cp 中?如果是这样,它就行不通,而且人对此只字未提,所以我不确定它应该做什么或如何使用它。