file
원하는 파일 형식 정보를 얻는 올바른 선택입니다. 출력을 결합 ls
하여 사용하는 것이 좋습니다 find
.
find -maxdepth 1 -type f -ls -exec file -b {} \;
이것은 현재 디렉토리에있는 모든 파일을 찾아 출력 인쇄 ls -dils
뿐만 아니라의 출력 file -b
자책골 행에 대한 각을. 출력 예 :
2757145 4 -rw-rw-r-- 1 dessert dessert 914 Apr 26 14:02 ./some.html
HTML document, ASCII text
2757135 4 -rw-rw-r-- 1 dessert dessert 201 Apr 13 15:26 ./a_text_file
UTF-8 Unicode text, with CRLF, LF line terminators
그러나 파일 유형 줄이 아니라 파일 유형 열 을 원하므로 줄 사이에 줄 바꿈 문자를 제거하는 방법이 있습니다.
find -maxdepth 1 -type f -exec sh -c "ls -l {} | tr '\n' '\t'; file -b {}" \;
샘플 출력 :
-rw-rw-r-- 1 dessert dessert 914 Apr 26 14:02 ./some.html HTML document, ASCII text
-rw-rw-r-- 1 dessert dessert 201 Apr 13 15:26 ./a_text_file UTF-8 Unicode text, with CRLF, LF line terminators
새 열은 매우 길기 때문에 첫 번째 쉼표에서 모든 것을 자릅니다.
find -maxdepth 1 -type f -exec sh -c "ls -l {} | tr '\n' '\t'; file -b {} | cut -d, -f1" \;
그 결과는 다음과 같습니다.
-rw-rw-r-- 1 dessert dessert 914 Apr 26 14:02 ./some.html HTML document
-rw-rw-r-- 1 dessert dessert 201 Apr 13 15:26 ./a_text_file UTF-8 Unicode text
이것은 매우 편리하지 않으므로 어떻 alias
습니까? ~/.bash_aliases
파일에 다음 줄 lsf
을 사용하면 현재 디렉토리에 대한 위의 출력을 얻기 위해 실행해야합니다 .
alias lsf='find -maxdepth 1 -type f -exec sh -c "ls -l {} | tr '"'\n'"' '"'\t'"'; file -b {} | cut -d, -f1" \;'