在 tcsh 的嵌套表达式中调用 mv 将不起作用
call mv in nested expression in tcsh won't work
我有一些带有“??????”的目录名字符,无法确定代码集,使用 convmv,所以我尝试执行以下操作
find . -maxdepth 1 -type d > list
edit list with cutting others that ./????...
mv `cat list` new_dir
但是不行,请问为什么,如何重命名这个目录?
您可以将 -exec
传递给 find
,不需要中间 list
文件:
find . -maxdepth 1 -type d -exec mv {} new-name \;
这应该正确传递参数,即使是那些带有空格或其他需要转义的字符。
请注意,这仅在您 "find" 单个文件时有效。
cat list
的输出嵌入到 mv
命令行中,它混淆了 shell。
要修复,输出应该封装在双引号内,这样实现:
mv "`cat list`" new_dir
我有一些带有“??????”的目录名字符,无法确定代码集,使用 convmv,所以我尝试执行以下操作
find . -maxdepth 1 -type d > list
edit list with cutting others that ./????...
mv `cat list` new_dir
但是不行,请问为什么,如何重命名这个目录?
您可以将 -exec
传递给 find
,不需要中间 list
文件:
find . -maxdepth 1 -type d -exec mv {} new-name \;
这应该正确传递参数,即使是那些带有空格或其他需要转义的字符。
请注意,这仅在您 "find" 单个文件时有效。
cat list
的输出嵌入到 mv
命令行中,它混淆了 shell。
要修复,输出应该封装在双引号内,这样实现:
mv "`cat list`" new_dir