我有很多没有文件扩展名的文件。现在我想添加.txt到所有文件。我尝试了以下操作,但出现错误,mv: rename . to ..txt: Invalid argument。
我怎样才能实现这个目标?
find . -iname "*.*" -exec bash -c 'mv "$0" "$0.txt"' {} \;
Run Code Online (Sandbox Code Playgroud)
你快到了!
只需添加-type f仅处理文件:
find . -type f -exec bash -c 'mv "$0" "$0.txt"' {} \;
Run Code Online (Sandbox Code Playgroud)
如果您mv处理该-n选项,您可能想要使用它(这是不覆盖现有文件的选项)。
您遇到的错误是因为.它是 发现的第一个错误found,当您想要重命名时,您的系统会(正确地)抱怨.!你-type f确信这不会发生。现在,如果您想对目录中的所有内容进行操作,您可以-mindepth 1在命令的开头添加find(被.认为是深度 0)。
您的问题不是很清楚,但是如果您想将扩展名添加.txt到所有没有扩展名的文件怎么办?(我们同意,延期意味着名称中包含句点)。在这种情况下,您将使用以下的否定:-name '*.*'
find . -type f \! -name '*.*' -exec bash -c 'mv "$0" "$0.txt"' {} \;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |