Unix:如何在没有 mkdir 的情况下执行 mkdir、cp?
Unix: How to do mkdir, cp, without mkdir?
所以脚本 2 是:
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 ""|grep -q PDF
这两个组合应该找到实际上是 PDF 文件的 .txt 文件,然后将它们复制到某个结果目录并将它们重命名为 .pdf 文件。但文件应位于:result/their/original/directories/file.pdf
。 (如果原来是some_directory/their/original/directories/file.txt
,还有一些目录里面有space,所以很多".."
)
完成了,可以用了,但问题是:没有mkdir怎么办?
我已经尝试了很多东西,但 none 似乎有效,而且我读到的每个 post 都说它可以通过使用 mkdir 来完成(但因为我的教授要求它完成没有 mkdir,我很确定它可以完成。我不必这样做,但我想知道它是如何完成的)。
也许可以通过管道查找来完成? (有些论点会先打印目录,然后将它们一个一个地复制,然后再复制文件?)我在这上面浪费了很多时间,如果没有正确的答案就退出它是一种耻辱。
您可以在使用 install
创建前导目标目录时复制文件:
install -D src/file dest/src/file
所以脚本 2 是:
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 ""|grep -q PDF
这两个组合应该找到实际上是 PDF 文件的 .txt 文件,然后将它们复制到某个结果目录并将它们重命名为 .pdf 文件。但文件应位于:result/their/original/directories/file.pdf
。 (如果原来是some_directory/their/original/directories/file.txt
,还有一些目录里面有space,所以很多".."
)
完成了,可以用了,但问题是:没有mkdir怎么办?
我已经尝试了很多东西,但 none 似乎有效,而且我读到的每个 post 都说它可以通过使用 mkdir 来完成(但因为我的教授要求它完成没有 mkdir,我很确定它可以完成。我不必这样做,但我想知道它是如何完成的)。
也许可以通过管道查找来完成? (有些论点会先打印目录,然后将它们一个一个地复制,然后再复制文件?)我在这上面浪费了很多时间,如果没有正确的答案就退出它是一种耻辱。
您可以在使用 install
创建前导目标目录时复制文件:
install -D src/file dest/src/file