내 디렉터리의 상태를 확인하고 싶습니다.
$ ls
Foo Bar Zoo
상태를 확인하세요
$ ls | xargs stat -x
File: "Zoo"
Size: 384 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: ( 501/ ..) Gid: ( 20/ ..)
Device: 1,4 Inode: 8603392907 Links: 12
Access: Fri Mar 30 09:12:06 2018
Modify: Wed Mar 28 10:07:32 2018
Change: Wed Mar 28 10:07:32 2018
File: "Bar"
Size: 160 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: ( 501/ ..) Gid: ( 20/ ..)
Device: 1,4 Inode: 8604964551 Links: 5
Access: Fri Mar 30 09:12:06 2018
Modify: Thu Mar 29 20:48:46 2018
Change: Thu Mar 29 20:48:46 2018
File: "Zoo"
Size: 416 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: ( 501/ ..) Gid: ( 20/ ..)
Device: 1,4 Inode: 8603830641 Links: 13
Access: Fri Mar 30 09:28:54 2018
Modify: Fri Mar 30 09:28:54 2018
Change: Fri Mar 30 09:28:54 2018
형식이 조밀하므로 각 파일이나 디렉터리를 시각적으로 구분하기 위해 희소 형식을 선호합니다.
$ ls | xargs stat -x
File: "Foo"
Size: 384 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: ( 501/ ..) Gid: ( 20/ ..)
Device: 1,4 Inode: 8603392907 Links: 12
Access: Fri Mar 30 09:12:06 2018
Modify: Wed Mar 28 10:07:32 2018
Change: Wed Mar 28 10:07:32 2018
File: "Bar"
Size: 160 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: ( 501/ ..) Gid: ( 20/ ..)
Device: 1,4 Inode: 8604964551 Links: 5
Access: Fri Mar 30 09:12:06 2018
Modify: Thu Mar 29 20:48:46 2018
Change: Thu Mar 29 20:48:46 2018
File: "Zoo"
Size: 416 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: ( 501/ ..) Gid: ( 20/ ..)
Device: 1,4 Inode: 8603830641 Links: 13
Access: Fri Mar 30 09:28:54 2018
Modify: Fri Mar 30 09:28:54 2018
Change: Fri Mar 30 09:28:54 2018
달성하는 방법?
답변1
BSD stat를 사용하고 있으므로 이 -f
옵션을 사용하여 원하는 후행 개행 문자를 포함하여 형식을 명시적으로 지정할 수 있습니다. 전체 형식 문자열을 수동으로 작성하는 것은 -x
약간 지루할 수 있으므로 여기에 얻은 형식 문자열이 있습니다.소스에서, 문자열로 결합:
' File: "%N"%n Size: %-11z FileType: %HT%n Mode: (%OMp%03OLp/%.10Sp) Uid: (%5u/%8Su) Gid: (%5g/%8Sg)%nDevice: %Hd,%Ld Inode: %i Links: %l%nAccess: %Sa%nModify: %Sm%nChange: %Sc'
%n
원하는 효과를 얻으려면 끝에 몇 가지를 추가하십시오.
$ stat_format=' File: "%N"%n Size: %-11z FileType: %HT%n Mode: (%OMp%03OLp/%.10Sp) Uid: (%5u/%8Su) Gid: (%5g/%8Sg)%nDevice: %Hd,%Ld Inode: %i Links: %l%nAccess: %Sa%nModify: %Sm%nChange: %Sc%n%n'
$ stat -f "${stat_format}" .zshrc .bashrc
File: ".zshrc"
Size: 5878 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: ( 502/muru) Gid: ( 20/ muru)
Device: 1,5 Inode: 8596072804 Links: 1
Access: Mar 30 11:40:18 2018
Modify: Mar 26 13:34:14 2018
Change: Mar 26 13:34:14 2018
File: ".bashrc"
Size: 3768 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: ( 502/muru) Gid: ( 20/ muru)
Device: 1,5 Inode: 8593701774 Links: 1
Access: Mar 30 11:40:18 2018
Modify: Jan 28 11:15:12 2018
Change: Jan 28 11:15:12 2018
답변2
원하는 것을 수행하는 방법에는 여러 가지가 있습니다. 가장 간단한 것 중 하나는 다음과 같습니다.
$ ls | xargs stat -x | sed 'n;n;n;n;n;n;s/$/\n/'
내가 사용하는 시스템이 출력 옵션을 지원하지 않기 때문에 -s의 수가 n;
1씩 줄어들 수 있다는 점에 유의하세요.-x