Shell

複製順序文件

  • August 15, 2017

我有 12 個名為dmp_000,dmp_001等的文件,一直到dmp_011. 我想按順序將它們全部複製到rdmp_000rdmp_001等,以便編號的文件一致。必須有一個簡單的方法來做到這一點,而不是單獨?

我使用此命令生成一些範例數據

% for  i in `seq 0 11`;do touch dmp_$(printf "%03d" $i);done

% ls
dmp_000  dmp_001  dmp_002  dmp_003  dmp_004  dmp_005  dmp_006  dmp_007  dmp_008  dmp_009  dmp_010  dmp_011

要復製文件並保留原始文件修改/創建日期:

% for i in dmp*;do cp -p "$i" "r${i}";done

% ls
dmp_000  dmp_002  dmp_004  dmp_006  dmp_008  dmp_010  rdmp_000  rdmp_002  rdmp_004  rdmp_006  rdmp_008  rdmp_010
dmp_001  dmp_003  dmp_005  dmp_007  dmp_009  dmp_011  rdmp_001  rdmp_003  rdmp_005  rdmp_007  rdmp_009  rdmp_011

將文件 wdmp* 移動到 rdmp*

% for i in wdmp*;do newname=$(echo $i|sed 's/^w/r/'); mv "$i" "$newname";done

注意:您也可以使用該命令使用@warl0ck 的答案。rename

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