Mv
重命名文件並將文件從一個目錄移動到另一個目錄
需要您對在路徑 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
部分。在這裡發帖時,您應始終引用文件名。