web-dev-qa-db-ja.com

Linuxでファイル操作(cp、mv、rm、chownなど)を実行するときにフォルダーを除外するにはどうすればよいですか?

ファイル操作、つまりcpなどを実行するときにフォルダーをどのように除外しますか?.

現在、ワイルドカード*を使用してファイル操作をすべてに適用しますが、1つのフォルダーを除外する必要があります。

私が実際に使用したいコマンドは、ディレクトリ内のすべてのファイルの所有者を変更するchownですが、1つのサブディレクトリを除外する必要があります。

6
Camsoft

逆グロブ:
グロブの逆一致が必要な場合は、次のようにします。

拡張グロブを有効にすると、新しいbashで逆一致を実行できます。たとえば、名前にfooまたはbarが含まれていないすべてのものに一致させるには:

shopt -s extglob
echo !(*foo*|*bar*)

または、fooを持たないすべてのもの:

shopt -s extglob
echo !(*foo*)

検索:
また、find(これは私が考える最も堅牢なオプションです)を使用して、!一致を否定し、xargs -0を使用してコマンドを実行します。

find . ! -iname 'foo' -print0 | xargs -0 echo

シンプル:
フォルダを別の場所に移動し、必要なことを実行して、元に戻します:-)

7
Kyle Brandt

rsync -arv --exclude = {files} {宛先}

1
Tman