모든 하위 디렉터리를 제거하는 방법은 무엇입니까? (유닉스 쉘 스크립팅)
Jan 15 2021
"cdrs-roaming"이라는 디렉토리가 있습니다. 매일 하나 이상의 .zip 파일을 받고 다음과 같이 압축을 풉니 다.
#!/bin/bash
for i in *.zip
do
j=${i//\.zip/} mkdir $j
cd $j unzip ../$i
cd -
done
예를 들어 "example1.zip"과 "example1"이 있습니다. "example2.zip"및 "example2"
다음과 같이 모든 zip 파일 (이 경우 : "example1.zip"및 "example2.zip")을 제거합니다.
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
그래서 "example1"과 "example2"라는 디렉터리 (또는 폴더-차이점을 잘 모르겠습니다)를 제거하고 싶습니다. 나는 이것을 시도했다 :
#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
그러나 "cdrs-roaming"도 제거합니다. 나는 또한 사용하려고 시도했다 :
find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
그러나 다음을 반환합니다. find : '/ cdrs-roaming /': 해당 파일이나 디렉토리가 없습니다.
이 일에 대한 아이디어가 있습니까? "cdrs-roaming"내의 디렉토리 만 삭제해야하는데 그 안에있는 다른 것은 제거 할 수 없습니다 (내 .sh 파일이 그 안에 있습니다).
답변
2 user1934428 Jan 15 2021 at 15:17
bash를 사용하고 있으므로
rm -rf /dados/cdrs-roaming/*/
마지막 슬래시는 bash가 패턴을 디렉토리로만 확장하도록합니다.
1 TimurShtatland Jan 15 2021 at 05:27
사용 -mindepth 1
옵션 :
find /dados/cdrs-roaming/ -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;