find
명령을 사용하여 여러 수준의 디렉터리 이름을 표시 할 수 있습니다. 다음 명령 /var
은 깊이가 2 인 경로 아래의 모든 디렉토리를 표시합니다 .
find /var -maxdepth 2 -type d;
결과는 다음과 같습니다.
/var
/var/log
/var/log/sssd
/var/log/samba
/var/log/audit
/var/log/ConsoleKit
/var/log/gdm
/var/log/sa
stat
명령을 사용 하여 수정 된 날짜 시간을 찾을 수 있습니다.
stat /var/log/samba | grep 'Modify:'
결과는 다음과 같습니다.
Modify: 2014-01-02 11:21:27.762346214 -0800
디렉토리가 수정 된 날짜 시간으로 나열되도록 두 명령을 결합하는 방법이 있습니까?
답변
당신은 사용할 수 -exec
에 대한 스위치 find
및 출력 형식 정의 stat
사용하여 -c
다음과 같이 스위치를 :
find /var -maxdepth 2 -type d -exec stat -c "%n %y" {} \;
이것은 출력의 같은 줄에 파일 이름 뒤에 수정 시간을 제공해야합니다.
답변
허용되는 답변은 작동하지만 느립니다. 각 디렉토리에 대해 stat를 실행할 필요가 없으며 find는 수정 날짜를 제공하며 직접 인쇄 할 수 있습니다. 다음은 상당히 빠른 동등한 명령입니다.
find /var -maxdepth 2 -type d -printf "%p %TY-%Tm-%Td %TH:%TM:%TS %Tz\n"
답변
find /var -maxdepth 2 -type d | xargs ls -oAHd
이것은 ls
전체 디렉토리 경로를 표시하는 기본 명령 을 얻는 방법 입니다. 재귀 검색에 ls
대한 -R
매개 변수 가 있지만 경로는 -l
또는 -o
옵션 (적어도 OSX에서는)을 사용 하여 결과에 표시되지 않습니다 ls -lR
.
답변
의 최신 GNU 버전 에는 날짜 필드를 포함 find
하는 -printf
옵션 도 포함 되어 있습니다. 표준 “C”형식으로 파일 이름과 수정 시간을 인쇄해야하는 경우 -printf "%c %p\n"
.
특정 형식의 날짜를 원하는 경우 %C
뒤에 필드 문자를 사용할 수 있습니다 . 예를 들어, 4 자리 해가 될 것 %CY
으로, Y
4 자리 연도의 문자 인.
여러 필드가 필요한 경우 %C
여러 번 지정해야합니다 . 예를 들어 YYYY-MM-DD 형식은 다음과 같습니다 %CY-%Cm-%Cd
.
자세한 내용은 매뉴얼 페이지 또는 온라인 설명서 를 확인 하십시오.
다음은 작동하는 예입니다.
find . -name favicon.ico -printf "%c %p\n"
답변
마지막 날에 수정 된 파일을 인쇄하는 데 사용하는 또 다른 파일입니다. ls -ltr은 수정 시간, 사용자 등과 같은 더 자세한 정보를 제공합니다.
find <my_dir> -mtime -1 -type f -print | xargs ls -ltr
답변
이 줄을 시도하십시오.
find /var -maxdepth 2 -type d|xargs stat|grep -E 'File|Modi'
여기에서 실행하면 다음과 같이 출력됩니다.
....
File: ‘/var/cache/cups’
Modify: 2013-12-24 00:42:59.808906421 +0100
File: ‘/var/log’
Modify: 2014-01-01 12:41:50.622172106 +0100
File: ‘/var/log/old’
Modify: 2013-05-31 20:40:23.000000000 +0200
File: ‘/var/log/journal’
Modify: 2013-12-15 18:56:58.319351603 +0100
File: ‘/var/log/speech-dispatcher’
Modify: 2013-10-27 01:00:08.000000000 +0200
File: ‘/var/log/cups’
Modify: 2013-12-22 00:49:52.888346088 +0100
File: ‘/var/opt’
Modify: 2013-05-31 20:40:23.000000000 +0200
....