이 폴더 /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
그리고 자세한 (파이썬) 옵션은 다음과 같습니다:
#!/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
찾기 명령을 사용하여 match라는 폴더를 찾을 수 있습니다.
locate match
경로를 찾으면 전체 폴더에 대해 위의 명령을 수행하십시오.
sudo rm -rf /path/to/match
최고야, 레프