刪除某個目錄中具有特定名稱的檔案和資料夾

刪除某個目錄中具有特定名稱的檔案和資料夾

我有一個資料夾,/home/userA/folderA該資料夾包含許多文件、資料夾和子資料夾。我想要做的是刪除所有具有特定名稱data.txtglass.txt.我還想刪除match以其所有內容命名的任何資料夾。如果您提供有關如何執行此操作的任何建議,我將不勝感激。

答案1

您可以刪除 的子目錄中的檔案和資料夾folderA

若要刪除文件,請運行:

find /home/userA/folderA/* -type f \( -name "data.txt" -or -name "glass.txt" \) -delete 

並刪除資料夾match

find /home/userA/folderA/* -depth -name "match" -type d -exec rm -rf "{}" \; 

答案2

以及詳細(python)選項:

#!/usr/bin/env python3

import os
import shutil

# --------------------------------------------------------
reorg_dir = "/path/to/your/folder"
remove_files = ("data.txt", "glass.txt")
remove_dirs = ("match")
# ---------------------------------------------------------

for root, dirs, files in os.walk(reorg_dir):
    for name in files:
        if name in remove_files:
            os.remove(root+"/"+name)
    for dr in dirs:
        if dr in remove_dirs:
            shutil.rmtree(root+"/"+dr)

將腳本複製到一個空文件中,設定目錄,如果您想要/需要:編輯要刪除的文件和資料夾列表,將其另存為 reorg.py 並通過以下命令運行它:

python3 /path/to/reorg.py

答案3

您只需執行以下命令(請小心並仔細檢查所有內容,因為這是不可逆的!)這將刪除其中包含單字 data 或 glass 的所有 .txt 檔案。

sudo rm -rf /home/userA/folderA/*data*.txt

sudo rm -rf /home/userA/folderA/*glass*.txt

您可以使用locate命令找到任何名為match的資料夾:

locate match

找到路徑後,只需對整個資料夾執行上面的命令即可

sudo rm -rf /path/to/match

最好的,列夫

相關內容