我正在尝试编写一个脚本,在其中可以找到大于特定大小的文件,然后将它们移动到另一个目录,但 find 命令还包括结果中的当前目录,不需要移动以下是我编写的命令和我收到的消息
$ find -size +2000c -print0 | while IFS= read -r -d $'\0' file; do mv $file ~/wrkbnch; done
mv: cannot move '.' to '/home/jerry/wrkbnch/.': Device or resource busy
答案1
如果您正在寻找文件,请务必find
用以下方式告知-type f
:
find . -type f -size +2000c -exec mv {} "$HOME/wrkbnch" ';'
你的代码:
find -size +2000c -print0 |
while IFS= read -r -d $'\0' file; do
mv $file ~/wrkbnch
done
这里缺少的两件事是
-type f
对于find
, 和- 双引号用于
$file
处理奇异的文件名(例如*
)。
有关 的信息IFS= read -r
,请参阅“理解“IFS=读取-r行”吗?“(您通过专门指定分隔符来处理大多数此类问题)。