请问我应该如何处理这个问题有什么建议吗? 我需要移动目录中的所有文件并更改它们的名称,删除前面的所有内容并包括第一个“_”,例如:
之前的示例:
data directory
DT21_Filename1
D22_Filename2
D33_Filename3
导出数据目录 之后的示例:
Filename1
Filename2
Filename3
最佳答案
首先将所有文件重命名为:
rename 's/([^_]*_)//' *
然后将它们移动到目录中:
mv * PATH_TO_NEW_DIRECTORY
您还可以为上述内容编写脚本。
脚本:
curr_dir=$PWD
cd $1
for i in *; do
rename 's/([^_]*_)//' $i
done;
mv * "$curr_dir/$2"
用法:
bash filename.sh path_to_old_directory relative_path_to_new_directory_from current
这将重命名文件并将其从 old_directory 移动到 new_directory。
如果您为新目录提供绝对路径:
cd $1
for i in *; do
rename 's/([^_]*_)//' $i
done;
mv * $2
关于linux - 移动一堆文件时更改所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869846/