그래서 저는 Mac OS의 "dot_bar" 파일을 코어 파일로 병합하려고 했습니다. 내가 하고 싶은 한 가지는 내 Mac(M1 MacBook Air)에서 모든 "dot_bar" 파일을 찾는 것입니다. 조회하는 데 시간이 좀 걸리므로 파일 목록 출력을 날짜/시간으로 묶고 싶었습니다.
그래서 몇 가지 실험을 거친 후 실행했습니다.
(date "+%Y-%m-%d_%H-%M") && sudo -A find / -name "._*" 2>/dev/null &&
(date "+%Y-%m-%d_%H-%M")
시작 날짜/시간과 "dot_bar" 파일은 표시되지만 종료 날짜/시간은 표시할 수 없습니다.
코드를 -로 변경하세요.
(date "+%Y-%m-%d_%H-%M") && sudo -A find /Volumes -name "._*" 2>/dev/null &&
(date "+%Y-%m-%d_%H-%M")
시작 날짜/시간, 파일 목록, 종료 날짜/시간을 표시합니다.
따라서 유일한 차이점은 검색 경로가 "/"인지 "/Volumes"인지 뿐이라고 생각합니다.
출력이 다른 이유는 무엇입니까? 즉, 첫 번째 옵션은 종료 날짜/시간을 인쇄하지 않고 두 번째 옵션은 종료 날짜/시간을 인쇄합니까?
감사해요,
매우 혼란 :)
답변1
이는 &&
"이전 명령이 성공적으로 완료된 경우에만 다음 명령을 실행합니다"를 의미합니다. 따라서 find
명령이 실패하면, 즉 0이 아닌 상태로 종료되는 경우에 이런 일이 발생합니다. 이는 파일이 발견되었는지 여부와는 아무런 관련이 없으며, find
실제로 검색할 수 없는 경우 발생하며, 검색할 수 있지만 아무것도 발견되지 않은 경우에도 발생합니다. 내 생각엔 다시 시도하면 2>/dev/null
두 번째 명령이 오류를 반환하는 것을 볼 수 있을 것입니다.
표시하려면:
$ find . -name file_that_does_not_exist && echo yes
yes
$ find directory_that_does_not_exist -name whatever && echo yes
find: ‘directory_that_does_not_exist’: No such file or directory
$
따라서 이는 find /
명령에 오류가 발생했음을 나타냅니다. 실제로 Kusalananda는 댓글에서 sudo find /
, 또는 및 , 및 기타 항목의 콘텐츠에 대해 다양한 오류를 반환했다고 언급했습니다. 이는 명령이 0이 아닌 종료 코드(실패)로 끝났으므로 두 번째 명령이 실행되지 않음을 의미합니다.Operation not permitted
No such file or directory
/Library/Caches
/System/Volumes
/private/var
date