
上記の文字を使用せずに隠しファイルをリストすることは可能ですか?これは、オプションやワイルドカード*、その他の文字(例:ないls -a
、、などls -d
が許可されます。.!(|.)
echo .*
答え1
find .
隠しファイルも含めたすべてのファイルを一覧表示します。
帰結:誰かがそれは良い考えだと考えているコマンドインジェクションについて教える個々のキャラクターをブラックリストに登録し、おそらく命令さえもスクリプトにこのようなハックが書かれてしまうと、シェルの学習に悪影響を及ぼします。エスケープ文字またはUbuntu固有のデフォルト設定に依存するどちらもできない特殊なファイル名を扱う。
実際のところ、これを思いついた人は、eval
提出されたコードやスクリプトを直接実行するのではなく、何らかの理由で(これは常に*ひどいアイデアです)使用したいと考えていたようです。
隠しファイルをループする最も簡単な方法は
for file in .*
do
my_command "$file"
done
* または、常に非常に近いので、全体を読んで理解しておく必要がありますこれに関するBash wiki記事使用を検討する前に。
答え2
Ubuntuにはデフォルトのエイリアスがありますls -la
。
la
答え3
echo `printf '.\x2A'`
勝利のための Unicode テーブル。
答え4
echo .
<TAB><TAB>
これを実行するには、すでに bash に組み込まれています。コマンドを実行する必要すらありません。
echo .
<メタ-*>
絶対にコマンドが必要な場合 (ただし、外部プロセスは不要)。