さまざまな場所のファイルを名前付きフォルダに移動するbashスクリプトがありますcompleted
。
以前のファイルを上書きしないようにしたいので、移動したいファイルSelection Of Recipes.zip
名(たとえば)がすでに存在する場合は、completed
ファイル名にランダムな数字または他の文字列を追加して区別します(Selection of Recipes-???.zip
ここでランダム???
な文字列とは何ですか)。
ただ使用することは可能ですかmv
、またはその側面を処理するパラメータを使用して別のbashスクリプトを作成する必要がありますか?私が自分でデザインするために使用できるbashスクリプトを持っている人はいますか?
ベストアンサー1
GNUを使用している場合は、mv
次のオプションがあります。
$ mv -b source/* dest/.
このスイッチは、ディレクトリ内の競合するmv
すべてのファイルをバックアップバージョンにプッシュするように指示します。通常、ファイルをディレクトリに移動する前に、ファイルの末尾にチルダ()を追加します。dest/.
~
はい
ファイルを含む次のサンプルディレクトリがあるとします。
$ mkdir source dest
$ touch source/file{1..3} dest/file{1..5}
$ tree
.
├── dest
│ ├── file1
│ ├── file2
│ ├── file3
│ ├── file4
│ └── file5
└── source
├── file1
├── file2
└── file3
source
これでファイルをから次に移動するときdest
:
$ mv -b source/* dest/.
$ tree
.
├── dest
│ ├── file1
│ ├── file1~
│ ├── file2
│ ├── file2~
│ ├── file3
│ ├── file3~
│ ├── file4
│ └── file5
└── source
2 directories, 8 files
制御拡張
同様に、GNUバージョンの場合は、mv
スイッチを使用してデフォルトの動作を変更できます-S <string>
。
$ mv -b -S "string" source/* dest/.
はい
$ mv -b -S .old source/* dest/.
$ tree
.
├── dest
│ ├── file1
│ ├── file1.old
│ ├── file2
│ ├── file2.old
│ ├── file3
│ ├── file3.old
│ ├── file4
│ └── file5
└── source
2 directories, 8 files