【发布时间】:2019-05-20 02:05:16
【问题描述】:
我需要 find 命令来重命名每个文件和目录。在我当前的目录中。 例子: 我有文件和目录:
abc.txt
abcd.pdf
xyx.csv
XYS
XYZ
I want to rename it
abc.txt -> old_abc.txt
XYZ -> old_XYZ
我正在使用类似的东西
find . ! -name dbg.txt -exec rename * old_ '{}' \;
如何将每个文件和目录作为参数传递给 find 命令。
注意:我想避免重命名 dbg.txt 文件 请在这里帮忙!!
【问题讨论】:
-
那么这里有什么问题呢?首先重命名文件:
-type f,然后重命名目录:-type d。您可以使用选项-maxdepth 1设置深度。 -
也许:
for fname in *; do if [[ $fname != "dbg.txt" ]]; then mv "$fname" "old_$fname";fi;done -
这是一个想法 -
mv $dir old_$dir; mkdir $dir; mv old_$dir/dbg.txt $dir/;不会重命名目录 in 中的所有内容,而是将整个内容移开并使用一个文件创建一个新的干净文件你想保留。没有?
标签: linux bash shell find command