ファイルを表示しないという内容のスレッドがありますが、ls "*"
実際にその理由を知りたいです。
ls *
このコマンドは私の端末に何も出力しません。
ls: invalid option -- '|'
Try 'ls --help' for more information.
しかし、
ls
現在のディレクトリのすべてのファイルを一覧表示します
1 ferol readme.txt
2 fichier sarku
2018 GameShell Templates
22223333 '-|h4k3r|-' test
3 hs_err_pid2301.log test2
CA.txt important.top.secret.txt toto.text
CA.zip JavaBlueJProject tp1_inf1070
countryInfo.txt liendur 'tp1_inf1070_A19(2) (1)'
currency liensymbolique tp1_inf1070_A19.tar
curreny LOL Videos
Desktop Longueuil 'VirtualBox VMs'
Documents Music words
douffos numbers Zip.zip
Downloads Pictures
examples.desktop Public
ここでワイルドカードが機能しない理由についてのアイデアはありますか?私はUbuntuにいてターミナルで働いていますが、これがどのような違いがあるのかわかりません。
ありがとうございます。
ベストアンサー1
走るとき
ls *
ワイルドカードは通常どおり動作し、*
次のような現在のディレクトリのすべてのファイル名に展開されます。
-|h4k3r|-
で始まる-
ので、ls
オプション(-a
または-l
)で構文解析してみてください。|
これは実際に認識されるオプションではないため、ls
エラーメッセージを表示してからinvalid option
終了します(ファイルリストなし)。
現在のフォルダ内のすべての項目を明示的に一覧表示するには、次の手順を試します。
ls ./*
...これにより、すべてのファイル名にプレフィックスが追加されます./
(アイテムがオプションとして誤って解釈されるのを防ぐため)。
ls -- *
...ここでは--
「オプションの終わりを表す区切り文字」があります。残りの引数はファイル名です。