ls -Aは何をしますか?私はこのシェルスクリプトを見つけましたが、ls -Aが何をしているのかわかりません。指示にはそのように示されていますが、ls -A == do not list implied . and ..
それが何を意味するのか理解できません。
dir=./$1
if [[ -z $(ls -A $dir) ]]
答え1
ls
ドットで始まるファイル名は通常印刷されません。これはに当てはまりますが、すべてのディレクトリに存在し、が含まれている-a
ため、あまり興味深いものではありません。これら2つを除くすべてを印刷するために使用します。.
..
-A
$ touch normal .hidden
$ ls
normal
$ ls -a
./ ../ .hidden normal
$ ls -A
.hidden normal
ifステートメントでは、コマンドはキャプチャされ$( .. )
た出力をls
置き換えて[[ -z ... ]]
空の文字列かどうかをテストします。つまり、ディレクトリにファイルがありません。
通常、ls
出力を読むのは良い考えではなく、シェルでファイルを繰り返すには使用できます*
。ただし、ここでは指定されたディレクトリ名に空白(またはファイルグローバル文字)、コマンドラインから展開され、結果が混乱する可能性ls
があります。
望むより: