내 계정이 액세스할 수 없는 디렉터리(애플리케이션에서 사용하고 애플리케이션을 실행하는 계정이 소유한 캐시 디렉터리)를 비워야 할 정당한 필요성이 있습니다. 내 계정에는 전체 sudo
권한이 있지만(제 생각에는) 그렇지 않습니다. 해당 디렉터리의 내용을 삭제하는 방법을 모르겠습니다. 내 계정은 cd
디렉터리에 들어갈 수 없으며 상위 디렉터리에만 들어갈 수 있습니다.
sudo rm directory/*
응답하다
cannot remove `directory/*': no such file or directory
간단한 답이 있어야 할 질문인 것 같은데 찾을 수 없습니다.
편집하다:문제의 디렉터리는 확실히 비어 있지 않습니다.
sudo ls directory/
1000개가 넘는 파일 이름이 반환되었습니다.
답변1
쉘이 *
파일 목록으로 확장하려고 하기 때문에 문제가 발생하지만 디렉토리를 읽을 수 있는 권한이 없기 때문에 확장할 수 없습니다.
나는 두 가지를 생각해 볼 수 있습니다.
sudo bash -c "rm directory/*"
이 경우 *는 사용자가 확장하는 것이 아니라 디렉터리를 읽을 수 있는 루트에 의해 확장됩니다.
또는
sudo find directory -type f -exec rm {} \;
위의 명령은 디렉터리가 아닌 파일만 삭제하지만(그렇지 않으면 directory
내용과 함께 삭제됩니다) 오류가 발생할 가능성이 적습니다.
편집: 첫 번째 옵션에서는 실수로 디렉토리/* 대신에 디렉토리.*를 썼습니다.
답변2
어느작업을 수행할 때 sudo rm
명시적 경로를 사용하지 않는 경우 수행 중인 작업에 대해 신중하게 생각해야 합니다.
sudo rm /explicit/path/to/directory/*
작동해야합니다. ;에 파일이 없으면 directory
여전히 오류가 발생합니다. 당신은 그것을 사용할 수 있습니다 rm -f
(아니요 rm -fr
너가 아니라면전적으로무엇을 하고 있는지 결정하세요).