/etc/passwd
すでに作成したディレクトリに新しい名前でコピーする必要がありますmy_passwd
。絶対パスを使用してコピーする方法を理解しますcp /etc/passwd /home/user/work/my_passwd
。
だから私はこれが.
シェル..
の私のディレクトリで一歩上に移動し、それを入力する場所であることを知っていますcd work
。家にいればそこに行けますか?私は間違っていますか?相対パスを使用してどのようにコピーしますか?
ベストアンサー1
相対パスはで始まらないパスです/
。
この特定の例では、/etc/passwd
コピーするファイルの絶対パスがわかっている場合は絶対パスです。相対パスに変換することは(通常)実際の目的はありません。(実際、パスは現在のディレクトリツリーのどこにあるかによって異なりますので、状況は混乱する可能性があります。)
ファイルをコピーするディレクトリのファイル名$HOME/work
はですmy_passwd
。 $HOME
ホームディレクトリの絶対パスに展開されます。
絶対パスのみを使用してファイルをコピーします。
cp /etc/passwd "$HOME/work/my_passwd"
これは、現在のファイルシステムのどこにあるかに依存しません(良いです)。
ファイルの相対パスを見つけるには、Linuxでこのコマンドを使用/etc/passwd
できますrealpath
(このユーティリティは他の種類のUnixシステムでは使用できませんが、少なくともUbuntuでは使用できます)。現在のホームディレクトリにあるとします(cd
引数なしでコマンドを発行した後):
$ realpath --relative-to=. /etc/passwd
../../etc/passwd
/etc/passwd
これは「ここで2つのディレクトリを見つけて、次の場所にあります」と言いますetc
。
相対パスを使用してホームディレクトリにあるファイルをコピーする(ディレクトリツリーの他の場所からコピーすることはできません):
$ cp ../../etc/passwd work/my_passwd
work/my_passwd
デフォルトディレクトリからサブディレクトリのファイルまでのmy_passwd
相対パスwork
。
エーテルの組み合わせ
$ cp /etc/passwd work/my_passwd
または
$ cp ../../etc/passwd "$HOME/work/my_passwd"
これは、絶対パスまたは相対パスを指定したいかどうかに応じて、ホームディレクトリでも明らかに機能します。