GNU/Linux >> Linux の 問題 >  >> Linux

1 つを除くすべてのファイルを移動する

move コマンドが一致しないように、tux ファイル名を変更するのが簡単な方法です。

例:

mv Tux.png .Tux.png

mv * ~/somefolder

mv .Tux.png Tux.png

以下を .bashrc に追加してください

shopt -s extglob

正規表現を拡張します。その後、1 つを除くすべてのファイルを次の方法で移動できます

mv !(fileOne) ~/path/newFolder

他のコマンドに関する例外

ディレクトリのコピーでは、スレッド Why extglob except breakexcept condition? で通知されているように、名前に forward-flash を使用できないことに注意してください:

cp -r !(Backups.backupdb) /home/masi/Documents/

そう Backups.backupdb/ ここでは否定の前に間違っています。ディレクトリの移動にも使用しません。他のコマンドでグロブを誤って使用したり、他の例外が発生する可能性があるためです。


bash を使用していて extglob がある場合 シェル オプション セット (通常はそうです):

mv ~/Linux/Old/!(Tux.png) ~/Linux/New/

従来の find &xargs の方法を使用します:

find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png -print0 | 
    xargs -0 mv -t ~/Linux/New

-maxdepth 1 再帰的に検索しないようにします。ファイルだけに関心がある場合は、-type f と言えます . -mindepth 1 ~/Linux/Old を含めないようにします 結果へのパス自体。埋め込まれた改行を含むものを含む、任意のファイル名で動作します。

1 つのコメントは、mv -t が オプションはおそらく GNU 拡張です。それがないシステムの場合

find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png \
    -exec mv '{}' ~/Linux/New \;

Linux
  1. Linuxで1つの特定のファイルを除いてフォルダ内のすべてのファイルを削除する方法

  2. すべてのファイル(非表示を含む)をあるディレクトリから別のディレクトリに移動するにはどうすればよいですか?

  3. 最後の(最新の)20を除くフォルダ内のすべてのファイルを削除しますか?

  1. 検索を使用して特定のディレクトリを検索し、1つのディレクトリを除くその中のすべてのファイルを削除しますか?

  2. すべてのファイルをあるディレクトリから別のディレクトリに移動 (および上書き) する方法は?

  3. を除くすべてのファイルを一覧表示するコマンド。 (ドット) と .. (ドット ドット)

  1. bashスクリプトで最新の3つを除くすべてのファイルを削除します

  2. すべてのファイルを現在のディレクトリから上位ディレクトリに移動する方法は?

  3. 番号付きファイルの範囲を移動する