マイコンピュータの1つでファイルの複製に問題があります。親フォルダに名前が同じすべてのフォルダのコピーがありますが、スペースが多く無駄になっていてすべて削除したいと思います。
例:
/mnt/test/files/foo
\_ /mnt/test/files/foo/file1 (etc)
|__ /mnt/test/files/foo/foo
\_ /mnt/test/files/foo/foo/file1 (etc)
|_ /mnt/files/foo/foo2
\_ /mnt/files/foo/foo2/file1 (etc)
|_ /mnt/files/foo/foo2/foo2
\_ /mnt/files/foo/foo2/foo2/file1 (etc)
/mnt/files/foo/foo
明らかに私はそれとその/mnt/files/foo/foo2/foo2
内容(など)を完全に削除し、スペースの無駄を止めたいと思います。 Bashでスクリプトを書くための良い方法は何ですか?
ベストアンサー1
find
述語をサポートしている場合は、次のように-regex
ディレクトリを一覧表示できます。
find . -type d -regex '.*/\([^/]*\)/\1' -prune -print
これを削除するには、次のように変更できます-print
。
-exec rm -rf {} +
ただし、必要なファイルを削除しないように、まずリストを確認してください。