私は通常、次のコマンドを使用して検索を介してホームディレクトリの空のファイルとフォルダを削除します。
find /home/tjuh -empty -delete
しかし、フォルダを除外したかった。つまり、/home/tjuh/.local/share/Steam/steamapps/common/
次のことを試しました。
find . -not -path '/home/tjuh/.local/share/Steam/steamapps/common/' -empty
そのフォルダが検索から除外されていることを確認したいのですが、実際には好きなように機能しません。
どんな提案がありますか?
答え1
パラメータ-path
はパターンなので、ワイルドカードを使用する必要があります。それ以外の場合は正確に一致します。
find . -not -path "./.local/share/Steam/steamapps/common/*" -empty
また、絶対パスや相対パスを混在させてはいけません。上は相対パス、下は絶対パスです。
find /home/tjuh -not -path "/home/tjuh/.local/share/Steam/steamapps/common/*" -empty
答え2
このディレクトリを除外する場合そして彼らのすべての子孫、-prune
必要なものは次のとおりです。
find "$HOME" -path "$HOME/.local/share/Steam/steamapps/common" -prune -o -empty -delete
これは、パスが一致する場合$HOME/.local/share/Steam/steamapps/common
(-prune
そのパスとサブアイテムを無視)続行し、そうでない場合-empty
(-delete
および続行)を意味します。
答え3
努力する:
rm `find /home/tjuh -empty | grep -v "^/home/tjuh/.local/share/Steam/steamapps/common/"`