我的原始圖像是img.jpg。
如何刪除重複的圖片 img.jpg1、img.jpg2、img.jpg3。我想保留擴展名為 .jpg 的圖像。
謝謝
答案1
答案2
find
將命令與-regex
和標誌結合-exec
。在這個特定的範例中,-exec
只需將所有重複圖像移至垃圾箱,這樣您仍然可以恢復其中的任何圖像(如果您選擇這樣做)。您可以稍後使用rm
命令,或透過 GUI 清理垃圾
testerdir:$ ls
img.jpg img.jpg1 img.jpg2 img.jpg3
testerdir:$ find . -regex ".*\.jpg[1-9]+" -print -exec mv -t $HOME/.local/share/Trash/ {} +
./img.jpg1
./img.jpg3
./img.jpg2
testerdir:$ ls $HOME/.local/share/Trash
expunged/ files/ img.jpg1 img.jpg2 img.jpg3 info/
testerdir:$ ls
img.jpg
答案3
bash
非遞歸地使用:
shopt -s extglob nullglob
rm img.jpg+(?)
如果末尾只有數字:
rm img.jpg+([0-9])
遞歸地:
shopt -s globstar extglob nullglob
rm **/img.jpg+(?)
如果末尾只有數字:
rm **/img.jpg+([0-9])
這裡我們使用了一些 shell 選項:
extglob
將使我們能夠匹配擴展的全局模式,例如+(?)
匹配任何字元的一次或多次出現。預設情況下,應在互動式 shell 中啟用此功能。nullglob
如果未找到匹配項,將導致空字串globstar
將使我們能夠使用遞歸搜索**