重命名文件并将其从一个目录移动到另一目录

重命名文件并将其从一个目录移动到另一目录

需要有关在路径 1 上运行的命令的帮助,以重命名文件并将文件从路径 2 移动到路径 3

认为

path1 = /data/run/
path2 = /data/output/
path3 = /data/archive/

路径 2 包含一些文件,例如“one.txt”、“two.txt”等...

我想在path1中运行一个命令,该命令可以将文件“one.txt”重命名为“archive_one.txt”并将它们移动到path3

我尝试了 '/data/run' 中的以下命令,但它将整个路径作为文件名并抛出错误。

$for FILENAME in /data/output/*.txt; do mv $FILENAME /data/archive/archive_$FILENAME; done

我怎样才能做到这一点。谢谢。

答案1

你想做的是

for FILENAME in /data/output/*.txt; 
do 
   mv "$FILENAME" "/data/archive/archive_$(basename  "$FILENAME")" ; 
done

当然,这可以是一排的。

在哪里

  • basename "$FILENAME"提取文件名的最后部分
  • basename "$FILENAME" .txt会做同样的条纹.txt部分。

在这里发帖时,您应始终引用文件名。

相关内容