dmx*_*dmx 1 xargs special-characters locale mv
我正在尝试将我的文件从当前目录移动到另一个目录。我遇到的问题是多个文件的名称带有特殊字符,如space, ü, &, (, .... 如何使用以下命令移动我的所有文件:ls | grep mp4 | xargs -i mv {} mp4,其中{}应该是当前文件的名称,而 mp4 目标将放置我的所有文件。我已经尝试过该命令,但它显示错误。你能帮忙吗?
这正是您不想使用的ls情况。或者xargs使用默认设置,它会将输入拆分为空格,并专门处理引号和反斜杠。您需要使用-0分隔空字节的输入,或-d'\n'分隔换行符 (GNU xargs) 以关闭该行为。
由于所有文件都在同一目录中,因此您可以只使用 shell:
mv *mp4* mp4/
Run Code Online (Sandbox Code Playgroud)
或者,mv *.mp4 mp4/如果您仅指具有mp4扩展名的文件。第一个会警告自己移动mp4到mp4.)
如果文件不在同一目录中,您需要使用双星(zsh- 默认启用或kshwithset -o globstar或bashwith shopt -s globstar):
mv **/*mp4* mp4/
Run Code Online (Sandbox Code Playgroud)
或者 find
find . -type f -name "*mp*" -exec mv {} mp4/ \;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |