rm -f !(/var/www/wp)
コマンドがうまくいかないのはなぜですか?残す必要がある/var/www
ディレクトリを除くすべてのファイルを削除したいと思います。/var/www/wp
root@born:~# ls /var/www
authorize.php index.html INSTALL.txt README.txt UPGRADE.txt
CHANGELOG.txt index.php LICENSE.txt robots.txt web.config
COPYRIGHT.txt INSTALL.mysql.txt MAINTAINERS.txt scripts wp
cron.php INSTALL.pgsql.txt misc sites xmlrpc.php
drupal install.php modules themes
includes INSTALL.sqlite.txt profiles update.php
root@born:~# rm -f !(/var/www/wp)
root@born:~# ls /var/www
authorize.php index.html INSTALL.txt README.txt UPGRADE.txt
CHANGELOG.txt index.php LICENSE.txt robots.txt web.config
COPYRIGHT.txt INSTALL.mysql.txt MAINTAINERS.txt scripts wp
cron.php INSTALL.pgsql.txt misc sites xmlrpc.php
drupal install.php modules themes
includes INSTALL.sqlite.txt profiles update.php
ベストアンサー1
bash ≥4.3を実行していて、バックアップがある場合は、今このバックアップを見つけるのに良い時です。。
私はあなたがBashを使用していると仮定します。これ!(...)
ファイル名拡張パターンパターンと一致しないすべての既存のパスに拡張使用中。それは:
echo rm -f !(/var/www/wp)
"/var/www/wp"を除く現在のディレクトリのすべてのファイル名に展開されます。これは現在のディレクトリ内のすべてのファイルです。基本的rm -f *
に~
。rm
上記のコマンドを実行しないでください。
目的の効果を得るには、を使用するのと同じように、一致させたり一致させたりしないパス部分にのみパターンを使用するか、別のパターンを使用します*
。{a,b,c}
注文する:
echo rm -f /var/www/!(wp)
実行したいコマンドを印刷します。
正直なところ、私はこの方法をお勧めしません。ここや他の場所で遭遇する問題が発生しやすいです。付属のものがfind
追いつくのが簡単です。少なくとも、echo
コマンドを実行する前に何が起こっているかを確認できます。