文件名以 -(破折号)开头

文件名以 -(破折号)开头

-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(不带破折号)。只是出于纯粹的好奇心为什么你在第一个 pplac 中的文件前面加了一个破折号?

相关内容