ファイル/ディレクトリのグループを別のディレクトリに移動したい(コピーだけではない)。その中には、ターゲットディレクトリのファイル/ディレクトリと名前が衝突しているものがある。私の主な目的はファイルを移動することですので、空でないディレクトリが上書きされることを許容できます。
現在mv ... destination
を使用していますが、時々
mv:「ターゲット」を/ destination/targetに移動できません:ディレクトリが空ではありません
私はmv -f ... destination
を試しても成功しませんでした。ファイルを元の場所から削除したいので、rsync
は適切ではないようです。
おまけとして、おそらく名前を変更することによって上書きされる予定のファイルを保持するための良い解決策はありますか?
mv --backup=numbered
を使用する場合
(または--backup
スイッチの他のオプションの1つ)、
次にmv
はマージを完了し、上書きされる予定のファイルを保持します。
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
SRC=/path/to/source
DST=/path/to/destination
for item in $SRC/*; do
if [[ -f "$DST/$(basename "$item")" ]]; then
newitem=$(basename $item)_old
while [[ -f "$DST/$newitem" ]]; do
newitem=${newitem}_old
done
mv "$DST/$(basename $item)" "$DST/$newitem"
fi
mv "$item" "$DST/$(basename $item)"
done
画面内のmc
(ミッドナイトコマンダー)とIns
およびF6