ls 명령을 사용하여 파일 크기를 숨기는 방법

ls 명령을 사용하여 파일 크기를 숨기는 방법

이 명령을 사용하여 디렉터리의 일부 파일을 나열해야 ls하지만 파일 크기도 숨겨야 합니다. ls명령으로 어떻게 할 수 있나요 ?

답변1

다음을 사용하여 차단할 수 있습니다 awk.

$ ls -l | awk '{print $1, $2, $3, $4, $6, $7, $8, $9}'

$ ls -l|awk '{print $1, $2, $3, $4, $6, $7, $8, $9}' | head -5
total 172136      
drwxrwxr-x 2 saml saml Jan 16 2013 desktop-integration
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-base-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-binfilter-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-calc-3.6.5.2-2.x86_64.rpm

세부 사항

awk명령은 자동으로 데이터를 열로 구문 분석하여 awk크기 정보가 포함된 열인 다섯 번째 열을 제외한 모든 열을 인쇄하도록 지시합니다.

노트:하지만 이 방법을 권장하지는 않습니다. 단지 다른 도구(예: )로 파이프하는 방법을 보여주기 위해 이 방법을 보여 드리고 있습니다. awk다음 방법은 특정 예제를 해결하는 데 선호되는 방법입니다!

더 간결한 awk 예

주석의 @val0x00ff 덕분에 awk다섯 번째 열을 제외한 모든 열을 인쇄하도록 지시하는 더 효율적인 방법이 있습니다.

$ ls -l|awk '{$5=""; print}' | head -5
total 172136   
drwxrwxr-x 2 saml saml  Jan 16 2013 desktop-integration
-rw-r--r-- 1 saml saml  Jan 16 2013 libobasis3.6-base-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml  Jan 16 2013 libobasis3.6-binfilter-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml  Jan 16 2013 libobasis3.6-calc-3.6.5.2-2.x86_64.rpm

세부 사항

이 방법에서는 awk다섯 번째 열을 빈 문자열로 설정하여 지우도록 지시합니다 "". 다른 모든 것은 그대로 유지됩니다. 그런 다음 awk나머지 결과 문자열을 인쇄 하도록 지시합니다 .

답변2

ls귀하의 질문에 따르면 귀하의 통화는 해당 옵션이 포함된 별칭이라고 가정합니다 -l. 따라서 한 가지 방법은 예를 들어 다음을 호출하여 위의 옵션을 ls사용하지 않는 것 입니다.-l

echo "call $(which ls)"
$(which ls)

또 다른 가능성은 실제로 해당 -l옵션을 사용하고 싶지만 파일 크기가 변경될 때마다 다른 출력을 원하지 않는 경우입니다. 이 경우 크기가 1TB를 초과하는 파일이 없는 경우에만 사용할 수 있습니다. 모든 파일에 대해 1T를 보고하여 실제 파일 크기를 숨기고 파이프 및 기타 명령의 사용을 방지하는 다음 명령을 사용하십시오.

ls -l --block-size=T

물론 파이프 사용이 마음에 들지 않고 사용하고 싶다면 awk@val0x00ff 덕분에 @slm이 게시한 솔루션을 사용하세요.

ls -l | awk '{$5=""; print}'

관련 정보