我正在尝试寻找一种基于.txt文件中的前两列通过shell或perl脚本重命名Linux中的文件夹的方法:
文字档范例
重命名.txt
current_dir1 new_dir1
current_dir2 new_dir2
current_dir3 new_dir3
...
current_dir50 new_dir50
然后,shell / Perl脚本将根据列表中的内容创建另一个要运行所有mv命令的文件:
named_folders.sh或.pl
#!/bin/ksh
mv /home/pete1/current_dir1 /home/pete1/new_dir1
mv /home/pete1/current_dir2 /home/pete1/new_dir2
mv /home/pete1/current_dir3 /home/pete1/new_dir3
........
mv /home/pete1/current_dir2 /home/pete1/new_dir2
最佳答案
#!/usr/bin/env bash
folder_path="/home/pete1/"
while read -r oldname newname; do
# remove echo if happy with result
# if you remove echo it will rename
echo mv "$folder_path/$oldname" "$folder_path/$newname";
done < rename.txt
如果将
done < rename.txt
设置为done < rename.txt >somefile.sh
,它将写入所有echo
结果的命令