파일 이름은 -(대시)로 시작합니다. [중복]

파일 이름은 -(대시)로 시작합니다. [중복]

-l내 디렉토리에 다음과 같은 파일이 있습니다.

이제 나는하려고합니다

for i in *; do stat -c "%s %n" "$i"; done

모든 파일을 크기와 함께 나열하지만 출력 중간에 다음과 같은 내용이 있습니다.

395 koko.pub
stat: invalid option -- 'l'
Try 'stat --help' for more information.
2995974 list.txt

따라서 일반적인 파일 이름처럼 처리되지 않습니다 -l. 여기서 원하는 동작을 얻으려면 어떻게 해야 합니까 stat?

답변1

파일 이름 앞에 사용 ./:

for i in *; do stat -c "%s %n" "./$i"; done

또는 --옵션의 끝을 표시 하려면 다음을 수행하세요 stat.

for i in *; do stat -c "%s %n" -- "$i"; done

-그러나 이름이 지정된 파일(현재 디렉터리의 파일이 아닌 표준 입력에서 열린 파일에 대한 정보를 보고함)에 대해서는 -실패합니다 .

답변2

--태그 옵션 끝에 추가하십시오 stat.

for i in *; do stat -c "%s %n" -- "$i"; done

답변3

더 쉬운 방법은 파일 이름을 -_I 또는 간단히 I(대시 없이)로 바꾸는 것입니다. 단지 순수한 호기심에서 왜 첫 번째 plac의 파일 앞에 대시를 넣었습니까?

관련 정보