mv *フォルダ(「移動できない」エラーを防ぐ)

mv *フォルダ(「移動できない」エラーを防ぐ)

何千ものファイルを新しいフォルダに移動しようとするたびに、常に同じ問題に直面します。

> mkdir my_folder
> mv * my_folder
mv: cannot move 'my_folder to a subdirectory of itself 'my_folder'

上記のエラーは無害だと思いますが(うん?)避ける方法があるかどうか疑問に思います。

重要な場合は、zshのソリューションやさまざまなシェルでうまく機能するソリューションに興味があります。

ベストアンサー1

zshでextended_globこのオプションを有効にすると、globで除外パターンを使用できるため、~次のことができます。

setopt extended_glob
mv -- *~my_folder my_folder

または、否定演算子を使用してください(まだ使用されていますextended_glob)。

mv -- ^my_folder my_folder

ディレクトリ名を2回入力したくない場合は、中かっこを使用してください。

mv -- {^,}my_folder

Bash(他の回答を探しているユーザーの場合)では、Kshスタイルの拡張グローブを使用できます。

# If it's not already enabled
shopt -s extglob
mv -- !(my_folder) my_folder

zshこのksh_globオプションが有効になっている場合は、この構文を使用することもできます。

おすすめ記事