当前工作目录有多个编号在 1 到 100 之间的测试文件。这些文件的标题1.txt
为100.txt
.
该命令find . -maxdepth 1 -regextype posix-egrep -regex '.*/[ -._&a-zA-Z0-9]+\.txt' -exec bash -c 'mv "$@" "TestDir - Level One"' {} +
将所有文件移动一个,例如15.txt
.
相反,该命令find . -maxdepth 1 -regextype posix-egrep -regex '.*/[ -._&a-zA-Z0-9]+\.txt' -exec mv {} "TestDir - Level One"/ \;
移动所有文件。
如果find . -maxdepth 1 -regextype posix-egrep -regex '.*/[ -._&a-zA-Z0-9]+\.txt' -exec bash -c 'mv "$@" "TestDir - Level One"' {} +
再次执行该命令,则返回错误mv: missing destination file operand after 'TestDir - Level One' Try 'mv --help' for more information.
的版本find
是find (GNU findutils) 4.7.0-git
您缺少将
$0
字符串分配给bash -c '…'
调用。调用的第一个参数find
被分配给$0
(shell 的名称)而不是,$1
因此不会被移动。(强调我的)
将您的命令更改为