我需要将所有文件的大小写设置为小写:
directory11
subdirectory11
subdirectory21
File1
File2
...
Filen
directory21
subdirectory21
subdirectory21
File1
File2
...
Filen
..............................................
directory11
subdirectory11
subdirectory21
file1
file2
...
filen
directory21
subdirectory21
subdirectory21
file1
file2
...
filen
..............................................
使用linux命令可以吗?感谢。
答案 0 :(得分:1)
您应该考虑使用rename(1)
命令:
rename 'y/A-Z/a-z/' **
如果您使用bash4和**
设置,则 globstar
表示递归:
shopt -s globstar
此外,这是rename
的perl版本。如果您输入
file $(readlink -f $(type -p rename))
并且您看到ELF
,您的错误,请参阅prename
答案 1 :(得分:1)
你可以这样做:
rename 'y/A-Z/a-z/' *
答案 2 :(得分:1)
许多可能的选项之一是使用tr
来更改案例。使用目录中的find
查找所有文件。使用tr
&创建上部文件名字符串。使用mv
重命名。这些方面的东西:
while read OLD_FILENAME
do
NEW_FILENAME=`echo "$OLD_FILENAME"|tr [:upper:] [:lower:]`
mv -v "$OLD_FILENAME" "$NEW_FILENAME"
done < <(find directory_name -type f)
或者如果您想要mv
的交互模式,即要求更换确认,请使用以下内容:
(
IFS=$'\n'
for OLD_FILENAME in $(find directory_name -type f)
do
NEW_FILENAME=`echo "$OLD_FILENAME"|tr [:upper:] [:lower:]`
mv -vi "$OLD_FILENAME" "$NEW_FILENAME"
done
)
希望这有帮助!