팁:

팁:

내 하드 드라이브에는 복구 프로그램에서 작성한 약 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-inameAFP_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만의 고유한 문화라고 생각합니다. 그렇지 않고 단지 문자일 뿐입니다(파일 이름의 첫 번째 문자가 아닌 한).

관련 정보