lsは指定された順序を無視し、存在しないファイルを最初に報告します。

lsは指定された順序を無視し、存在しないファイルを最初に報告します。
$ ls -lU a.txt test.sh badtest
ls: cannot access 'badtest': No such file or directory
-rw-r--r-- 1 gqqnbig gqqnbig 11 Apr 15 17:17 a.txt
-rw-r--r-- 1 gqqnbig gqqnbig 11 Apr 16 17:22 test.sh

引数の順序はですが、a.txt test.sh badtestlsがbadtest最初に報告します。

lsはファイルの順序に従うことができますか?つまり。次の出力

$ ls -lU a.txt test.sh badtest
-rw-r--r-- 1 gqqnbig gqqnbig 11 Apr 15 17:17 a.txt
-rw-r--r-- 1 gqqnbig gqqnbig 11 Apr 16 17:22 test.sh
ls: cannot access 'badtest': No such file or directory

答え1

ls一度に呼び出すことはできません。また、エラーは、バッファリングがstdoutとは異なる動作をする別のストリームであるstderrに出力されることに注意してください。

また、これは-U非標準(GNU拡張)であり、引数としてls提供されているファイルを一覧表示する場合はこのオプションが必要です。-dそうでない場合は、その種類のファイルに対してこのオプションが必要です。目次lsその内容がリストされます。

または、ls各ファイルに対して実行できます。

for file in a.txt test.sh badtest
  ls -ld -- "$file"
done

これにより、上記のすべての問題が解決されます。

関連情報