Al *_*aba 0 command-line bash find mv
我想将我所有的 pdf 复制到一个 pdf 文件夹,为此我使用了这个find命令和-exec选项。在开始之前,我pdf在当前文件夹中创建了一个名为的文件夹
sudo find . -type f -iname "*.pdf" -exec mv {} /pdf \;
Run Code Online (Sandbox Code Playgroud)
pdf 文件不见了,但不在我预期的地方。也没有我认为可能存在的 /pdf 文件夹。/pdf 有员工文件夹
-rw-r--r--@ 1 myusername staff 9,9M 19 Aug 19:53 pdf
Run Code Online (Sandbox Code Playgroud)
任何的想法?
mv您提供的目标目录/pdf,您应该使用./pdf. 由于pdf在顶级目录中没有命名目录(文件夹)/,但由于您是root,mv将它移动的每个文件移动到文件 /pdf. 唯一可恢复的文件现在称为/pdf,并且是mv.
sudo find顺便说一句,当我,我总是使用--target-directoryswitch 到mv,并首先运行 find echo,以确保它做我想要的,像这样:
# NOTE: This demonstrates a FAIL
sudo find . -type f -iname '*.pdf' -exec echo mv --target-directory=/pdf {} \;
Run Code Online (Sandbox Code Playgroud)
但是,我可能会这样做:
mkdir ./pdf
find . -type f -iname '*.pdf' -print0 | xargs -0 mv --target-directory=./pdf
Run Code Online (Sandbox Code Playgroud)
mv如果参数--target-directory不存在,将显示错误消息。
我使用find -print0paired withxargs -0来处理包含空格和其他愚蠢字符的文件名。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |