web-dev-qa-db-ja.com

ディレクトリ/ foo(1)からディレクトリ/ fooにファイルを移動する方法

これは基本的なことですが、bashは初めてです。

重複が原因で、多くのフォルダに多くの写真があり、それらをクリーンアップしたいと思います。これが私のファイル構造の例です

- 12-30-14
  - img1.jpg
  - img2.jpg
- 12-30-14 (1)
  - img3.jpg
- 12-30-15
  - img1.jpg
  - img2.jpg
- 12-30-15 (1)
  - img3.jpg

次の結果になるスクリプトを実行したい

- 12-30-14
  - img1.jpg
  - img2.jpg
  - img3.jpg
- 12-30-14 (1)
- 12-30-15
  - img1.jpg
  - img2.jpg
  - img3.jpg
- 12-30-15 (1)

そこからfind . type d -empty -deleteを実行して、最終結果を次のようにします。

- 12-30-14
  - img1.jpg
  - img2.jpg
  - img3.jpg
- 12-30-15
  - img1.jpg
  - img2.jpg
  - img3.jpg

ファイルを(1)ディレクトリからクリーンディレクトリに移動する正しい方法がわからないだけです。

何かご意見は?

1
vushne

このようにこれを使用して bash スクリプト:

#!/bin/bash

for dir in *'(1)'*; do
    mv "$dir"/* "${dir% (1)}"
    rmdir "$dir"
done

これをファイルに入れてください、script.sh、次にターミナルで:

chmod +x script.sh
./script.sh
1
Gilles Quenot