Linux查找文件夹并重命名
我想将Linux查找文件夹并重命名,linux,bash,ubuntu,Linux,Bash,Ubuntu,我想将/var/www中的所有.hg_gg文件夹重命名为.hg。我怎么做? 我知道如何将.hg重命名为.hg\u gg find /var/www -name ".hg" -exec bash -c 'mv $0 $0_gg' {} \; 但不知道如何进行反向更改。试试以下方法: find /var/www -name ".hg_gg" -execdir bash -c 'mv {} .hg' \; 您需要使用find定义的特殊语法:{}是当前文件名的占位符。检查一下电话号码。使用-exec
/var/www
中的所有.hg_gg
文件夹重命名为.hg
。我怎么做?
我知道如何将.hg
重命名为.hg\u gg
find /var/www -name ".hg" -exec bash -c 'mv $0 $0_gg' {} \;
但不知道如何进行反向更改。试试以下方法:
find /var/www -name ".hg_gg" -execdir bash -c 'mv {} .hg' \;
您需要使用find定义的特殊语法:{}
是当前文件名的占位符。检查一下电话号码。使用-execdir
而不是-exec
也很重要execdir
将当前工作目录更改为找到的目录所在的文件夹。否则它将执行类似以下操作mv/var/www/.hg_gg./.hg
如果仅使用-键入d
,将查找限制为查找文件夹,则可以加快速度:
find /var/www -type d -name ".hg_gg" -execdir bash -c 'mv {} .hg' \;
试试这个:
find /var/www -name ".hg_gg" -execdir bash -c 'mv {} .hg' \;
您需要使用find定义的特殊语法:{}
是当前文件名的占位符。检查一下电话号码。使用-execdir
而不是-exec
也很重要execdir
将当前工作目录更改为找到的目录所在的文件夹。否则它将执行类似以下操作mv/var/www/.hg_gg./.hg
如果仅使用-键入d
,将查找限制为查找文件夹,则可以加快速度:
find /var/www -type d -name ".hg_gg" -execdir bash -c 'mv {} .hg' \;
不是一行,但你可以这样做:
for file in `find /var/www -name ".hg_gg"`; do
mv $file `echo $file | sed 's/hg_gg$/hg/'`
done
不是一行,但你可以这样做:
for file in `find /var/www -name ".hg_gg"`; do
mv $file `echo $file | sed 's/hg_gg$/hg/'`
done
考虑使用带有
-execdir
和-prune
选项的find命令:
find /var/www/ -type d -name ".hg_gg" -execdir mv '{}' '.gg' \; -prune
将在每个子目录中执行该命令-execdir
使find不会下降到当前文件中-prune
-execdir
和-prune
选项执行此查找命令:
find /var/www/ -type d -name ".hg_gg" -execdir mv '{}' '.gg' \; -prune
将在每个子目录中执行该命令-execdir
使find不会下降到当前文件中-prune
/var/www/test/.hg_gg'移动到.hg/.hg_gg':我知道目录不是空的。使用execdir
Great!它很管用,谢谢!我只添加了-depth参数,这样就不会显示找不到文件的错误。我相信OP想要相反的结果。是的,他说,但他显示了不同的代码。。我不确定他想要什么。我希望至少他是……)已更新代码mv:无法将/var/www/test/.hg_gg'移动到.hg/.hg_gg':我知道目录不是空的。使用execdir
Great!它很管用,谢谢!我只添加了-depth参数,这样就不会显示找不到文件的错误。你能提供这些文件夹的一些示例吗?我想重命名/var/www/test/.hg_gg/to/var/www/test/.hg/你能提供这些文件夹的一些示例吗?我想重命名/var/www/test/.hg_gg/to/var/www/test/.hg/我会做一个[-d]在调用mv之前,测试确认该文件是要访问的目录。我将执行[-d]在调用mv.PS之前进行测试以确认文件是要删除的目录:注意,如果没有-prune
选项,您将得到类似/.hg\u gg:没有这样的文件或目录
PS:注意,如果没有-prune
选项,您将得到类似/.hg\u gg:没有这样的文件或目录