![](/img/trans.png)
[英]Search Sublime Text 2 for files that contain 'Mickey' but do not contain 'Mouse'
[英]remove directories that do not contain media files
我正在嘗試制作一個腳本來刪除不包含媒體文件的文件夾。 下面的代碼有效,但也會刪除空目錄,媒體可能位於該空文件夾的子目錄中,所以我不想刪除它。
find /mnt/movies -type d '!' -exec /bin/sh -c 'ls -1 "{}"|egrep -i -q "^*\.(avi|mp4|mkv|srt)$"' ';' -exec /bin/rm -rv {} +
例子:
tree /mnt/movies/
/mnt/movies/
├── test1
│ └── 1.mp4
└── test2
└── random.txt
find /mnt/movies -type d '!' -exec /bin/sh -c 'ls -1 "{}"|egrep -i -q "^*\.(avi|mp4|mkv|srt)$"' ';' -print
/mnt/movies
/mnt/movies/test2
上面會刪除/mnt/movies
所以會刪除所有內容。
首先,擦除您不再需要的所有文件
find /mnt/movies -type f ! -name '*.mp4' ! -name '*.avi' ! -name '*.mkv' -exec rm -v {} \;
剩下一些空目錄和一些包含媒體文件的目錄。 現在,假裝刪除所有目錄:
find /mnt/movies -type d -exec rmdir --ignore-fail-on-non-empty -v {} \;
這將跳過非空目錄,即有媒體文件。
如果您沒有 Gnu rmdir(例如,因為您在 Mac 上),請使用 rmdir 不帶任何選項,但重定向2>/dev/null
,以避免有關非空目錄的錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.