.svg
ダウンロードしたファイルを含むフォルダを「圧縮解除」するコマンドラインスクリプトを作成しています。必要なファイルを特定のディレクトリにコピーしたので、すべて削除する必要があります。.svg
ファイルを含むディレクトリ私には必要ない他の形式やライセンスがいっぱいだからです。どうすればいいですか?
ベストアンサー1
GNUlyでは、次のようになります。
LC_ALL=C find . -name '*.svg' -type f -printf '%h\0' |
LC_ALL=C sort -zu |
xargs -r0 echo rm -rf
find
すべてのディレクトリ名を報告する場所.svg
定期的なファイルを削除し、sort -zu
重複エントリを削除してからxargs rm
削除します。
指定されたディレクトリでファイルを見つけた後でも、指定されたディレクトリ.svg
のサブディレクトリでファイルを検索するため、これは非常に効率的ではありません。.svg
現在のディレクトリに.svg
ファイルが含まれている場合、削除は拒否されます(一部のインクルードおよび拡張シェルのバグ機能を解決するための安全対策としてrm
)。rm -rf .
rm -rf .*
.
..
.*
.
上記を交換すると、この問題を解決できます"$PWD"
。
echo
必要に応じて機能すると満足している場合は、削除してください。
とともにbosh
シェル、内蔵機能を使用してこれをより効率的に実行できますfind
。
has_svg() {
find "$@" -maxdepth 1 -name '*.svg' -type f -call return 0 \;
return 1
}
find . -type d -call 'has_svg "$1"' {} \; -prune -exec echo rm -rf {} +