在path1上运行的命令上需要您的帮助以将文件重命名并从path2移动到path3
认为
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
会尽力而为,去掉条纹的.txt
一部分。在此处发布时,您应始终引用文件名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句