在linux里面怎么将当前目录下的文件全部重命名成,bak文件并放在另个一目录下的呢?

2024-11-07 15:20:17
推荐回答(2个)
回答1:

mkdir t31415 #建立目标目录
for file in *;do
if [ -f "$file" ];then
cp $file ./t31415/${file}.bak
fi
done

例如将以上内容保存为文本文件,如test.sh,然后拷贝到备份文件所在目录,在shell中执行bash test.sh。要备份的文件将被拷贝到子目录t31415下。没有压缩,只是拷贝,cp也可改用zip或rar等压缩命令。

回答2:

你的要求是不是重命名并移动文件,看下面一条命令
ls|awk '{ printf("mv %s /目标路径/%s.bak\n",$1,$1)}'|sh
注意.1其中/目标路径/替换成你要的路径
2.路径目录必须存在,先mkdir好
3.当前目录下面必须没有子目录.否则子目录也会别重命名移走
4.你的ls命令没有被alias重新定义,意思是执行ls的结果想下面的格式一样,一行一个文件名.
shg>ls
bin
duanxin.txt
sbin

如果满足上面条件,回车后,将能按照你的要求将文件处理.不满足的话请将[ xiajingtj]回答中的cp换成mv,即可.用谁的答案都先找垃圾文件测试一下. 数据无价