回答:
この名前のディレクトリが存在しない場合、ファイルの名前をopenvpn
ルートディレクトリに変更しました/
。これを元に戻すには、次を実行します:
sudo mv /openvpn /etc/MyFile.conf
ディレクトリが存在した場合、その中にファイルを移動した場合、復帰は次のとおりです。
sudo mv /openvpn/MyFile.conf /etc/
現在のディレクトリの既存のサブディレクトリに移動するには、これらのいずれかを実行できます。これらは相対パスを使用します。
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
.
は現在のディレクトリへのリンクであるため./
、パスの先頭は「このディレクトリ内」を意味します。末尾のスラッシュは、それopenvpn
がディレクトリであり、その中にファイルを移動することを意味します。指定しない場合、この名前のディレクトリが存在する場合、ファイルはそこに移動されます。存在しない場合、ファイルの名前はに変更されopenvpn
ます。/
最後にa を指定するmv
と、ディレクトリが存在せず、名前を変更しない場合に警告が表示されるため、名前を変更したくない場合は安全な方法です。
あなたのパスが始まる場合/
一方、それはだ、絶対にかかわらず、現在の作業ディレクトリの、それは常にルートディレクトリからの相対パスです/
。ファイルと宛先の両方に絶対パスを使用すると、コマンドは次のようになります。
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
使用する必要があります
me@mylaptop:/etc$ sudo mv MyFile.conf openvpn/
MyFile.conf
ファイルをのopenvpn
サブディレクトリに移動します/etc/
。
一方
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
代わりにファイルを/
ディレクトリに移動しますopenvpn
(つまり、名前を変更しますopenvpn
)(/openvpn
ディレクトリが存在しない場合)。
ファイルを移動するとき、OSにファイルを配置するディレクトリ、またはファイルに指定する新しいパスを指定します。
OSに「/ openvpn」と伝えました。ですから、それを正確に行います-/ openvpnが存在し(ルートディレクトリにある「openvpn」というオブジェクトを意味する) 、ディレクトリであるかどうかを確認し、そうであればファイルをそこに移動するか、/ openvpnがファイルまたは存在しない場合は、ファイルの名前を変更して移動し、/ openvpnとしてアクセスできるようにします。
あなたがやりたいのは、ファイルシステムのルートディレクトリにあるディレクトリではなく、現在のディレクトリにある「openvpn」ディレクトリに移動することでした(先頭の「/」が意味するものです)。したがって、絶対パス「/ openvpn」ではなく、moveコマンドでそのディレクトリをポイントする必要がありました。これらのいずれも機能します:
mv MyFile.conf openvpn
-この「openvpn」の現在のディレクトリを確認してくださいmv MyFile.conf /etc/openvpn
-絶対パス/ etc / openvpnを探しますmv MyFile.conf openvpn/
-現在のディレクトリで、openvpnというディレクトリを探しますmv MyFile.conf ./openvpn
-「現在のディレクトリ」をさらに明確にします短いバージョン-「/」を使用して「現在のディレクトリ」を意味するため、「/ openvpn」は「現在のディレクトリにあるopenvpn」を意味する可能性があります。ただし、先頭の「/」は「ルートディレクトリ」のみを意味するため、「/ openvpn」は「ルートディレクトリのopenvpn」を意味します。必要なのは、単に「openvpn」または「openvpn /」、つまり「現在のディレクトリの openvpn」を使用することでした。
で始まるパスはすべて/
、相対パスではなく絶対パスです。
すべてのパスが常に現在のディレクトリからの相対パスである場合cd /etc
、そもそもどうしますか?あなたはcd ../../../../../etc
それが十分なレベルであることを望み、希望する..
かcd ..
、ルートディレクトリに到達するまでやり続けます。
または、絶対パスを表現するために他の構文が必要になります。しかし、Unix /
はプロセスの現在の作業ディレクトリに関連する絶対的な意味を決定しました。だからmv MyFile.txt openvpn
動作します。
いいえ、存在するかどうかにかかわらず、絶対ファイルと相対ファイルを推測することはうまくいきません。私たちは望んでいないだろうmkdir
異なっから御馳走パスへのシステムコールchdir
やrename
システムコールを、そして作るmv
プログラムは、それはちょうど間の矛盾の余地がないmv
と、出力ファイル名を取り、いくつかの他のプログラム。
mv
rename()
宛先がディレクトリの場合、ソースファイル名をその宛先ディレクトリに追加して再試行するため、すでに特別です。しかし、1つの単純な実装戦略は、またはでrename()
失敗する最初のシステムコールに依存していることに注意してください。そのため、ファイルシステムをチェックする前に、パスが相対パスか絶対パスかを知る必要があります。EEXIST
EISDIR
(初期のUnixは低速なコンピューターで実行されていました。ディレクトリが存在するかどうかの追加チェックは、キャッシュされていない場合は追加のI / Oを意味します。歴史的な効率の議論に頼ることなく、システムが機能するもっともらしい方法ではなかった。)
他の回答を完了するには:
mv file.txt /location
Windowsの場合と同じです
mv file.txt c:\location
Linux のファイルシステムは、ファイルシステム階層標準(略してFHS)に基づいて考えられています。ファイルの性質と内容に応じて、ファイルを配置する場所を知るのに役立ちます。
最初のフォルダー(c:
Windowsに相当)は/
です。
sudo mv /openvpn/MyFile.conf /etc/
最初にコマンドを試してください。ありそうなシナリオでは、ディレクトリが存在しなかったため、エラー(おそらく「ディレクトリではない」)が表示され、ファイルシステムには触れません。その後、あなたはちょうどすることができますsudo mv /openvpn /etc/MyFile.conf
。