这很容易就可以了......但我现在正在使用bash。我正在寻找可以在langs中复制的背后的理解。
所以...
我正在将文件复制到目录树中,而不是用另一个文件替换该文件。
cp "$DIR"/folder2/file2 "$DIR";
mv "$DIR"/folder1/file1 "$DIR"/folder2/file2;
然后我将复制的文件移到另一个文件夹中......开始相同的舞蹈。
cp "$DIR"/folder3/file3 "$DIR";
mv "$DIR"/file2 "$DIR"/folder3/file3
我想这样做100次+。
最优雅的方式是什么?
优雅,在其他人的简短和易懂的意义上。
答案 0 :(得分:5)
for i in {1..100}; do
j=$((i+1))
cp "$DIR"/folder$j/file$j "$DIR"
mv "$DIR"/folder$i/file$i "$DIR"/folder$j/file$j
done
答案 1 :(得分:1)
你正试图:
等等。
向后执行它实际上更容易,因此您只需要备份最后一个文件。
last=100
mv "$DIR/folder$last/file$last" "$DIR"
for i in $(seq $last -1 2); do
mv "$DIR/folder$((i-1))/file$((i-1))" "$DIR/folder$i/file$i"
done
注意:
seq $last -1 2
以$last
的增量生成从2
到-1
的数字序列。 seq
而不是大括号扩展,因为后者在{$last .. 1}