![중복 출력에서 Exec 결과를 찾으시겠습니까?](https://linux55.com/image/179303/%EC%A4%91%EB%B3%B5%20%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C%20%E2%80%8B%E2%80%8BExec%20%EA%B2%B0%EA%B3%BC%EB%A5%BC%20%EC%B0%BE%EC%9C%BC%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
ls의 출력이 두 번 인쇄되는 원인은 무엇입니까?
$find . -exec ls -l {} \;
total 340
-rw-rw-r-- 1 w w 163244 Aug 26 19:25 apt-list--installed.txt
-rw-rw-r-- 1 w w 162078 Aug 26 19:25 apt-list.txt
-rw-rw-r-- 1 w w 29 Aug 27 08:29 df1
-rw-rw-r-- 1 w w 31 Aug 27 08:22 df2
-rw-rw-r-- 1 w w 9 Aug 26 23:24 f1
-rw-rw-r-- 1 w w 5 Aug 26 23:21 f2
-rw-rw-r-- 1 w w 27 Aug 27 11:40 o.txt
-rw-rw-r-- 1 w w 9 Aug 26 23:24 ./f1
-rw-rw-r-- 1 w w 163244 Aug 26 19:25 ./apt-list--installed.txt
-rw-rw-r-- 1 w w 27 Aug 27 11:40 ./o.txt
-rw-rw-r-- 1 w w 5 Aug 26 23:21 ./f2
-rw-rw-r-- 1 w w 162078 Aug 26 19:25 ./apt-list.txt
-rw-rw-r-- 1 w w 29 Aug 27 08:29 ./df1
-rw-rw-r-- 1 w w 31 Aug 27 08:22 ./df2
보시다시피, 이러한 파일은 위 출력에 두 번 나열됩니다. 왜?
답변1
find
이는 찾은 모든 파일과 디렉터리에서 실행하고 디렉터리에서 실행하면 기본적으로 해당 내용을 나열하기 때문에 발생합니다 . 따라서 각 파일은 처리되는 대로 나열됩니다.ls
ls
find
그리고포함된 디렉터리를 처리할 때.
이를 방지하려면 ls
모든 것을 파일로 처리하도록 지시하거나( ls -ld
), 파일이 있는 경우 find
'와 유사한 출력( )을 사용하도록 지시할 수 있습니다. 두 가지 모두 파일과 동일한 방식으로 디렉터리가 별도로 나열되도록 합니다. 파일 형식을 필터링하여 이를 방지할 수 있습니다.ls
find . -ls
예를 들어 -type f
).