コンパイラによって生成されたファイルを含むディレクトリがあります。再構築のたびに、このディレクトリはクリーンアップされ、構築プロセスの後、ls
は空の出力を提供します。私がディレクトリからcd
出た後、そこに戻ると、lsは正しく機能します。質問は次のとおりです。
cd
が必要なのはなぜですか?スクリプトは、ディレクトリだけでなく、ディレクトリも削除している可能性があります。したがって、その中にcd
を入れてディレクトリを削除すると、実際には存在しないディレクトリに対してls
を実行します。
_cd ..
_とcd (directory)
を使用すると、(新しく作成された)ディレクトリに移動して戻り、ファイルは期待どおりに存在します。
最良の代替手段は、ディレクトリの内外でcd
ingを実行する代わりに、ls
コマンドにディレクトリ名を追加し、親ディレクトリから実行することです。したがって、ls
だけでなく_ls YourSubdirectory
_を使用します。
もっと短い方法もあります:cd .
奇妙に見えますが、短く、ディレクトリを更新します:
cd `pwd`
それらはバックティックであり、pwdを囲む単一引用符ではないことに注意してください。
エイリアスを作成しますrefresh = "cd .. && cd-"これはディレクトリを上に移動し、前のディレクトリにcdします
あなたが再びリストが必要になると確信しているなら、あなたは持つことができます
alias refresh="cd .. && cd - && ls -lrt"
ailasが作成されたら、次のようにして〜/ .bashrcファイルにエイリアスを保存します
alias | grep refresh >> ~/.bashrc
次回ログインしたときに利用できるようにします。
@Kentの発言またはディレクトリを削除せず、その内容のみを削除します。これにより、ディレクトリにとどまることができ( "cd .. && cd -
"なしで)、 "ls"は期待どおりに動作します。
ディレクトリを削除しなかった方がよいでしょうが、cd ..; cd -
の代わりにcd $PWD
を実行できます。