我有一个文件夹,/home/userA/folderA
该文件夹包含许多文件、文件夹和子文件夹。我想要删除所有具有特定名称的文件data.txt
。glass.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
最好的,列夫