Mv

重命名文件並將文件從一個目錄移動到另一個目錄

  • July 31, 2020

需要您對在路徑 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

我怎樣才能做到這一點。謝謝。

你想做的是

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

這當然可以是一排。

在哪裡

  • basename "$FILENAME"提取文件名的最後一部分
  • basename "$FILENAME" .txt會做ame,striping.txt部分。

在這裡發帖時,您應始終引用文件名。

引用自:https://unix.stackexchange.com/questions/602181