web-dev-qa-db-ja.com

ホームディレクトリの〜に似た現在のディレクトリのコマンドラインショートカット?

ターミナルウィンドウでcpまたはmoveコマンドを使用すると、現在このような特定のフォルダーでbashを使用しています。

NES@server:~/Desktop/dir1$

そして今、私はここから~/anotherdir/dir2からbash(dir1)で現在選択されているフォルダーにファイルをコピーしたい

cp ~/anotherdir/dir2/file ~/Desktop/dir1

現在選択されているディレクトリを参照するショートカット文字列が存在しますか?この例では、ターゲットディレクトリへのフルパスを指定する必要はありませんが、コマンドはbashで現在選択されているディレクトリを使用する必要があることを知っていますか?つまり、〜はホームディレクトリを表しますか?

23
NES

現在のディレクトリは.です。したがって、cp /foo/fam/foo .はファイルを現在のディレクトリにコピーします。

「1つ上のディレクトリ」または現在の作業ディレクトリの親ディレクトリの類似した構造は、2つのドット、つまり..です。 (@djeikybに感謝します。)

したがって、/usr/house/firstfloor/basementから、cd ..を使用すると、1レベル上で/usr/house/firstfloorに移動します。

同じ例(/usr/house/firstfloor/basementから開始)では、コマンドcd ../../usr/houseに移動します。

$PWDechoとともに使用して、現在のディレクトリを取得することもできます。

echo $PWD

ちなみに、$OLDPWDは以前のディレクトリを提供します。 (bashには、cd -と入力してもアクセスできます。)

41
belacqua

$(pwd)を使用できます。これは、pwdコマンドからの出力に解決されます。

例:

echo $(pwd)
6
João Pinto

./は現在のディレクトリを表します。したがって、コマンドcp ~/anotherdir/dir2/file ./を使用できます。これにより、ファイル "file"が正しい作業ディレクトリにコピーされます。

3
binW

現在のディレクトリを宛先ディレクトリとして使用するには、単一のドット「.」を使用します

ロングアンサー

あなたの例を使用すると、次のように入力します:cp ~/anotherdir/dir2/file .

ドット...、および../../のディレクトリ名の動作を確認するには、次のコマンドをコピーしてターミナルに貼り付けます。

mkdir a && mkdir a/b && mkdir a/b/c && mkdir a/b/c2
cd a/b/c
cp /etc/default/grub .
cp /etc/default/grub ..
cp /etc/default/grub ../c2
cd ../../
tree

Treeコマンドの出力は次のように表示されます。

.
└── b
    ├── c
    │   └── grub
    ├── c2
    │   └── grub
    └── grub

3 directories, 3 files

ツリー出力の上部にある.は、新しい現在のディレクトリaを表します。これは、a/b/cコマンドを使用してナビゲートしたcd ../../の祖父母です。 aの下に、サブディレクトリa/ba/b/c、およびa/b/c2があります。

行ごとの分析

最初に、&&を使用して複数の行を結合することにより、1行に4つのディレクトリを作成しました。

次に、ディレクトリa/b/cに変更しました。これは、次のコピーコマンドの現在のディレクトリです。

  • 最初のコピーコマンド(cp)では、.を使用して現在のディレクトリ(c)に宛先を設定します。
  • 2番目のコピーコマンドでは、..を使用して、宛先を親ディレクトリ(b)に設定します。
  • 3番目のコピーコマンドでは、../c2で兄弟ディレクトリ(c2)に宛先を設定します

次に、前述のように、現在のディレクトリをaに変更し、treeコマンドを実行して、aの下にあるすべてのディレクトリとファイルを表示しました。

掃除

完了したら、次の3つのディレクトリとファイルを削除します。

cd ~/
rm -r tree
2

ドット(.)、~+チルダ展開pwdコマンド、または$ PWD変数を使用して、現在の作業ディレクトリ(CWD)を表すことができます。 。これらのコマンドはすべてそれを実行できます。

  1. mv file_old_dir .
  2. mv file_old_dir ~+
  3. mv file_old_dir $(pwd)
  4. mv file_old_dir $PWD
1
Helio

現在のディレクトリの 環境変数 は$ PWDです

echo $PWD
1
Takkat

はい(他の人が述べたように)、現在のディレクトリは "。"です。そのため、現在のディレクトリから./scriptでプログラム/スクリプトを起動できます(。がPATHの一部でない限り、スクリプトは動作しません。しかし)。 $ PWDまたは$(pwd)を使用することは、1つのドット文字を使用する方が短いことを他の人が言及している場合でも、少しやり過ぎです。確かに、「..」は親ディレクトリ、「/」はルートです。また、 "cd-"を使用すると、cwd(現在の作業ディレクトリ)を変更する前の以前のディレクトリに移動できます。また、毎日の仕事にも役立ちます。コマンドラインに他のコマンドがない「cd」コマンドを1つ入力すると、「〜」(自宅)に移動します。

0
LGB