ファイル操作、つまりcpなどを実行するときにフォルダーをどのように除外しますか?.
現在、ワイルドカード*を使用してファイル操作をすべてに適用しますが、1つのフォルダーを除外する必要があります。
私が実際に使用したいコマンドは、ディレクトリ内のすべてのファイルの所有者を変更するchown
ですが、1つのサブディレクトリを除外する必要があります。
逆グロブ:
グロブの逆一致が必要な場合は、次のようにします。
拡張グロブを有効にすると、新しい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
シンプル:
フォルダを別の場所に移動し、必要なことを実行して、元に戻します:-)
rsync -arv --exclude = {files} {宛先}