내 하드 드라이브에는 복구 프로그램에서 작성한 약 300,000 x 3 파일이 포함되어 있습니다.
이러한 파일 중 일부는 다음과 같은 형식을 갖습니다.
.doc.apple.quarantine
다음은 제거하기 쉽습니다.
find . -type f -name '*.apple.quarantine' -delete
그런데 다른 사람들은 이 명언 때문에 더 힘들어한다.
_AFP_Afpinfo
파일 확장자 뒤에 쓸 수 있습니다.
happybirthday.mp3._AFP_afpinfo
그렇지 않으면
happybirthday_AFP_Afpinfo
다음과 같은 세 번째 유형의 파일을 삭제하고 싶습니다.
happybirthday_AFP_Afpinfo
그래서 내 질문은 이 Unix 명령이 이러한 문자를 포함하는 모든 파일을 삭제하는 것입니까 AFP_Afpinfo
?
find . -type -f 'AFP_Afpinfo' -delete
나는 테스트했다
-find . -type -f -name 'epub' -print
파일이 표시되지 않습니다.
나는 노력했다
-find -type -f -name 'epub' -print
그리고 표시된 파일. 따라서 after의 사용은 find
올바르지 않습니다.
약 1/2시간 동안 실행한 후 다음을 실행합니다.
find -type f -name '_AFP_Afpinfo'
다음 오류가 표시됩니다.
find: './.Trash-1000/files': Input/output error
디렉터리를 확인했는데 AFP_Afpinfo
파일이 가득 찼습니다.
답변1
find . -type -f 'AFP_Afpinfo' -delete
부정확하거나 유효하지 않은 경우 - AFP_Afpinfo
파일 이름 앞이나 뒤가 정확히 일치해야 하며 전체 이름도 일치해야 합니다(의 경우 대소문자를 구분하지 않음).-name
-iname
AFP_Afpinfo
-iname
_AFP_Afpinfo
이름이 마침표로 끝나지만 앞에 마침표가 없는 파일을 찾으려면 다음을 수행하십시오.
find -type f -name '*[^.]_AFP_Afpinfo'
이는 또는 다음을 제외한 [^.]
모든 문자를 의미합니다..
find -type f \( -name '*_AFP_Afpinfo' ! -name '*._AFP_Afpinfo' \)
그것들은 정확히 동일하지 않습니다. 후자의 표현식은 일치 _AFP_Afpinfo
하지만 전자는 문자열 앞에 마침표가 아닌 문자가 하나 이상 필요합니다.
어느 경우든 나는강하게-print
테스트 대신 먼저 사용하는 것이 좋습니다 -delete
.
답변2
전혀 그렇지 않다.
팁:
시험을 받다
-print
대신 with 를 사용해 보세요 -delete
.
.
파일명이 특별하지 않아요
특별한 것은 없습니다 .
. 그냥 평범한 캐릭터입니다. DOS와 CP/M에서는 특별하지만 사용하지 않습니다. MS-Windows CMD로 끝나는 Glob은 .*
특별합니다.
n.*
하다n
- 그렇죠 , 그렇죠
n.*.*
n.*
*.*.*
*.*
- 이 모든 것은 CP/M/DOS 레거시에서 비롯되었습니다. 즉
*.*
, 모든 파일(모든 파일.
에는 . - 이 문화는 여전히 존재하며 많은 사람들은 이를
.
Unix만의 고유한 문화라고 생각합니다. 그렇지 않고 단지 문자일 뿐입니다(파일 이름의 첫 번째 문자가 아닌 한).