タグ付けされた質問 「cd-command」

cdは、作業ディレクトリを変更するために組み込まれたシェルです。

3
どうすればルートとしてディレクトリにcdできますか?
私がアクセスする特権を持っていないディレクトリがあるとしましょう。は、これまですべてのシェルに組み込まれたシェルsudo cd fooであるため、明らかに機能しませんcd。 これまでのところ、sudo bashルートプロンプトを取得するために使用しています(より良い方法があることはわかっています)。その後、私cdはディレクトリに侵入することができます。 これを行うより良い方法はありますか?
10 bash  sudo  cd-command 

3
bash:最後に変更された子ディレクトリに移動します
「最後に変更された子ディレクトリに変更する」と言う簡単な、または移植可能な方法があるかどうか疑問に思います。私はlsとawkを使用できますが、おそらくもっと良い方法があります。 cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' ) 何百ものサブディレクトリと99%の時間で、最後に変更されたディレクトリに移動したい「出力ファイル」ディレクトリでコマンドを実行する必要があります。事前にディレクトリの名前がどうなるかわかりません。
10 bash  date  cd-command 

5
cdコマンドにフックできますか?
実行しているサーバーに何かをセットアップしようとしcdていpublic_htmlます。常に95%の時間フォルダーに移動すると、特定のことを確認するために常に実行するコマンドがいくつかあります。 とにかくフックすることができるcdので、ディレクトリがの場合、public_html自動的にコマンドが実行されますか? cdコマンドにフックできない場合、私が望んでいる結果を達成するために他に何かできることはありますか? CentOS 5.8を実行しています。

2
アンパサンドを含むサブディレクトリ名をエスケープするにはどうすればよいですか?
Kornshellを実行し、ディレクトリツリーをトラバースしようとしています。次のような名前のサブディレクトリにcdしたいとします。 -3ab_&_-3dc.img 私の質問は、この名前のアンパサンドをどのようにエスケープする必要があるのですか?二重引用符とバックスラッシュのさまざまな組み合わせを試しましたが、成功しませんでした。

2
CD引数の大文字と小文字を区別しないようにするにはどうすればよいですか?
さまざまなディレクトリにアクセスしているときに、Linuxシステムのディレクトリの名前または少なくとも一部の名前を覚えていることがよくあります。ただし、一部のディレクトリの名前は、最初の文字が大文字か、大文字の名前の真ん中にある文字の1つで始まっています。 cdコマンドケースINSENSITIVEの後に引数を作成する方法を誰かが提案できますか。実行しcd BackupDirectoryたりcd backupdirectory、ディレクトリ名BackupDirectoryを入力したりできるようになります。 もちろん、私は他のユーザーのために物事を台無しにしたくないので、上記が可能であれば、変更は私が使用しているセッションにのみ適用され、他のユーザーには影響を与えない可能性はありますか? はい、試してみset completion-ignore-caseましたが、うまくいき ません。私が入力した場合、それはちょうどそれに役立ちますcd bし、TabあるいはEsc Esc、それはケースを無視して、ディレクトリ名を埋めます。しかし、私が必要なのは、を実行cd backupdirectoryした場合、ケースを無視BackupDirectoryして自分で入るだけです。

1
ディレクトリシンボリックトラバーサルと親ディレクトリについて
ディレクトリが/dir1あり/dir2/linked、後者が前者へのシンボリックリンクであるとしましょう。 ときにあなたがcdするlinkedとpwd、あなたは出力を得ます/dir2/linked。その後cd ..、あなたは着られるでしょう/dir2。この振る舞いは、あなたが/dir2/linked以前にいたという概念と一致しています。ただし、私が理解しているように、..任意のディレクトリの親ディレクトリ()は、ディレクトリiノード(つまり、物理的にディスク)に格納されています。明らかに、/dir2/linkedは本当になので/dir1、iノードの親ディレクトリは/ さらに複雑な問題に、内部ながら/dir2/linked、の出力ls ..とはcd .. ; ls .異なっています!cdシンボリックリンクされたパスを尊重しているように見えますが、ls「物理的な」パスを尊重しています。ただし、この質問で述べたようにcd -P、このユースケースにはあります。 man pwd 「物理」および「論理」作業ディレクトリについて言及していますが、この時点ではまだいくつか質問があります。 でPWD述べたように、この動作は常に環境変数によって提供されman pwdますか? それらが両方ともシェルコマンド(つまり、プログラムではない)である場合、なぜデフォルトcdでls動作が異なるのですか? 一般的なプログラム(シェルコマンドではない)PWDは、物理パスの代わりに使用しますか?実装次第だと思いますが、経験則はありますか?

1
ディレクトリ名のエコーなしで前のディレクトリに移動します
この回答によりcd -、Bashの以前のディレクトリに変更するための省略形が得られました。これには大きな問題があります。変更先のディレクトリが出力され、画面スペースが無駄になります。そのディレクトリは次の行のプロンプトで繰り返されるためです。 私cd $OLDPWDもできることはわかっていcd - >/dev/nullます。その回答でも言及されていますが、それははるかにタイピングです。 でbashmanページ、それは言います: ...または-が最初の引数で、ディレクトリの変更が成功した場合、新しい作業ディレクトリの絶対パス名が標準出力に書き込まれます。 -最初の議論にならないようにするにはどうすればよいですか?cdオプションの引数のいずれかを使用して?使用するすべてのマシンで関数/エイリアスを定義する必要なしに、エコーを抑制したり、タイピングを最小限にしたりする他の方法はありますか?

5
$ find -exec cd =>エラー:=> find: 'cd':そのようなファイルまたはディレクトリはありません
このコマンドを実行すると、機能します。 $ find . -inum 888696 -exec ls '{}' \; Conversation.pst Outlook Data File Outlook Data File.sbd Trash Unsent Messages Inbox.pst Outlook Data File.msf Sent.pst Trash.msf Unsent Messages.msf ただし、それを置き換えるlsと機能cdしません: $ find . -inum 888696 -exec cd '{}' \; find: ‘cd’: No such file or directory 私cdはbash組み込みであることを知っているので、これも機能しない次のことを試しました: $ find . -inum …
8 bash  find  cd-command 

4
chdir(<directory>)はシェルを終了した後にディレクトリを変更しません
Cプロジェクトディレクトリに変更する簡単なプログラムを作成したいと思いました。その内容は次のとおりです。 #include &lt;unistd.h&gt; int main() { chdir("/home/enedil/projects/algo"); return 0; } 私はそれを次のコマンドでコンパイルしました(pro.cはそのファイル名です): gcc pro.c -o /usr/local/bin/pro エラーも警告もありませんでした。しかし、それを実行しても、ディレクトリは変更されません。どうして?
8 process  c  cd-command 

3
親シェルの作業ディレクトリをプログラムで変更することは可能ですか?
普段行くディレクトリに切り替えられるように、コードを書きたいのですが。このプログラムがmycdであり/a/very/long/path/name、私が行きたいディレクトリであるとします。 したがって、のmycd 2代わりに単純に入力できcd /a/very/long/path/nameます。ここで私はmycd知っている2と思い/a/very/long/path/nameますそれを指します。またあるかもしれませんmycd 1、mycd 3、...など 問題はmycd、シェルスクリプトとして記述し、入力. mycd 2して必要なことを行う必要があることです。それ以外の場合、スクリプトは子スクリプトで実行されるだけで、実際に関心のある親シェルについては何も変更されません。 私の質問は: 使用せずにそれを行うことができsourceますか?ので、. mycd前提としては、mycdシェルスクリプトでなければならない、これはまた、私は望んでいないことをいくつかの機能を紹介することがあります。 他のプログラミング言語で実装できますか?

2
「cd&」とはどういう意味ですか?
入力してターミナルからディレクトリを変更する方法を知っています cd &lt;directory&gt; しかし、これがシナリオです。ターミナルを使用してgitリポジトリのフォルダーに移動していました。 glennRepositories glenn-remdroid-repository 上記のフォルダー構造を考えると、glenn-remdroid-repositoryこれは私のリポジトリなので、切り替えたいと思います。 cd glennRepositories glenn-remdroid-repositoryに切り替える前に、誤ってコマンドを入力しました cd &amp; の代わりにcd *。cd *フォルダ名が長いので使っていましたが、ご迷惑をおかけして申し訳ありません。 を実行するcd &amp;と、端末が応答します [1] 7519 私が実行するとcd *これが起こります [1]+ Done cd (wd: ~/glennRepositories) (wd now: ~/glennRepositories/glenn-remdroid-repository) 誰が何をcd &amp;意味し、その出力はありますか?Googleは私の質問を知りません:)

3
スクリプトで現在の作業ディレクトリを変更する
私はこの質問と回答を読みましたが、それが私の問題に完全に適合しているわけではありません。 現在のプロジェクトの1つを起動するスクリプト(cpj)を書いています。私はそれらの約5を持っています。入力すると $ cpj blah 現在の作業ディレクトリをblahプロジェクトディレクトリ($ PROJDIRに保持)に変更し、emacsclientがそのプロジェクトのメインファイル($ MAINFILEに保持)を開くようにします。 私が引用した質問では、スクリプトを実行しているシェルの環境を直接変更することはできませんが、スクリプトを読み込むことができ、そうすることができます。 これをテストするために、1行のシェルスクリプト(chcwd)を作成しました。 cd $1 コマンドラインから私が行う場合: $ . chcwd $PROJDIR 私の現在の作業ディレクトリは、必要に応じて変更されます。一方、私のcpjスクリプトから、同じ行がある場合: . chcwd $PROJECT シェルの現在の作業ディレクトリは変更されません。私は2つのスクリプト(cpjとchcwd)を実行しているため、2つのシェルを作成していることを理解していますが、希望どおりに実行する方法がありません。誰かが私の目標を達成する方法を教えてもらえますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.