하나의 명령으로 var/www/html에 있는 dir0/dir1의 모든 인스턴스에서 하나의 inode를 제외한 모든 inode를 삭제합니다.

하나의 명령으로 var/www/html에 있는 dir0/dir1의 모든 인스턴스에서 하나의 inode를 제외한 모든 inode를 삭제합니다.

나는 이 디렉토리를 가지고 var/www/html있고 그 아래에는 일부 웹사이트 디렉토리(예를 들어 5개 정도)가 있습니다.

5개의 웹사이트 디렉토리에는 모두 내부 경로가 있습니다 dir0/dir1.

he_IL.mo하나의 명령으로 경로 내의 모든 inode(명명된 inode 제외)를 일괄 삭제하는 방법은 무엇입니까 ?

다음과 같은 3개의 유효한 명령 블록이 있기 때문에 명령에 대해 질문하고 있지만 이 명령을 가능한 한 적게 사용하고 싶습니다.

(
find /var/www/html/*/dir0/dir1/ ! -name 'he_IL.mo' -type f -exec rm -f {} + 
find /var/www/html/*/dir0/dir1/ -type f -exec rm -d {} +
find /var/www/html/*/dir0/dir1/ -type f -exec rm -l {} + 
)
  • *대신 이렇게 하면 f"한 글자만 포함해야 합니다"라는 메시지가 나타납니다.
  • i대신 이 작업을 수행하면 f"알 수 없는 매개변수"가 표시됩니다.

답변1

명령을 사용하려면 -type명령에서 ,를 제거하세요. 그러면 우리는 다음을 얻습니다:

find /var/www/html/*/dir0/dir1/ ! -name 'he_IL.mo' -exec rm -f {} + 

해당 이름을 가진 디렉토리와 소프트 링크도 삭제되지 않지만 he_IL.mo가능하면 사용하십시오.

관련 정보