Unixでは、相対パスを使用して/etc/passwdをホームディレクトリの下のディレクトリにコピーする方法は? [閉鎖]

Unixでは、相対パスを使用して/etc/passwdをホームディレクトリの下のディレクトリにコピーする方法は? [閉鎖]

/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"

これは、絶対パスまたは相対パスを指定したいかどうかに応じて、ホームディレクトリでも明らかに機能します。

おすすめ記事