2014-09-18 2 views
1

4TB 디스크에서 프로그램의 이전 백업을 검색하고 삭제하려고합니다. 다양한 사용자에게 500 가지 이상의 인스턴스가있을 수 있습니다. 폴더는 ACCOUNTS라고하며,/home/local/*/backups/Acc/ACCOUNTS에 있습니다. 여기서 *는 사용자 이름입니다. 문제는 가장 최근의 백업이/home/local/*/backups/Acc/Mon/ACCOUNTS 7 일 교체에 위치한다는 것입니다.특정 부모 폴더가있을 때 폴더 찾기 및 삭제

find를 사용하여 ACCOUNTS의 모든 인스턴스를 찾아 삭제할 수 있지만 보존하려는 인스턴스도 삭제됩니다.

그렇다면 Accounts whos라는 폴더를 검색하여 부모 폴더가 Acc를 호출하고 다른 모든 ACCOUNTS 인스턴스를 그대로 남겨두면 어떻게 삭제합니까?

시도했는데 슬래시가 이름의 일부로 간주되어 경고를하기 때문에 작동하지 않습니다.

답변

0
rm -r /home/local/*/backups/Acc/ACCOUNTS 

. 당신이 계정을 많이 가지고 있고 위 ARG_MAX

for f in /home/local/*/backups/Acc/ACCOUNTS; do rm -r "$f"; done 

당신은 그냥

어떤 이유로 find를 원하는 경우 echo home/local/*/backups/Acc/ACCOUNTS을 수행하여 삭제 무슨 일이 일어나고 있는지 테스트 할 수 있습니다 안타 또는, 다수의 작업을 수행 할 수 있습니다 다른 것들은 아마도 단순한는 테스트 -print-exec rm -rf {} \; 교체 -regex

find /home/local/ -type d -regex '.*/Acc/ACCOUNTS' -exec rm -rf {} \; 

을 사용하는 것입니다.

관련 문제