「mv file.txt ../」と入力すると、ファイルはどうなりますか?

「mv file.txt ../」と入力すると、ファイルはどうなりますか?

"file.txt"フォルダを1つのフォルダの上に移動したいが、mv file.txt ../file.txt入力がありませんmv file.txt ../

これでファイルが消え、エラーメッセージは表示されません。したがって、一部の操作が正常に完了したようです。ところでここで何が起こっているのでしょうか?

バックアップがあるので、少なくとも大丈夫です。しかし、私が何をしたのか、何を変更したのか、それともファイルが魔法のように消えたのか知りたいです。

ベストアンサー1

ファイルが次に移動されました。実際そのディレクトリに到達するために使用したシンボリックリンクの親ではなく、現在存在するディレクトリの親です。デフォルトでは、発生時のcd動作はまたはlsとは異なります。上のパスをたどると効果的にシンボリックリンクを逆さまに進みますが、他のディレクトリはどのように到達したかに関係なく、自分がいるディレクトリの実際の親ディレクトリに移動します。mv..cd

次のディレクトリツリーを想像してください(~はホームディレクトリ、shortcut銀へのシンボリックリンクですmaindir/subdir)。

~
├── maindir/
│   └── subdir/
│       └── file.txt
└── shortcut -> maindir/subdir/

簡単に言えば、表示されcd表示されます。 ~/shortcutlsfile.txtpwd~/shortcutしかし、pwd、の出力はそこに到達するために従ったシンボリックリンクに基づいて正確ですが、実際には(必要に応じて「物理的に」)にあり、それを知っている~/maindir/subdirのでls実際の親ディレクトリに移動します。期待することもできます。mvmv file.txt ..file.txt~/maindir~

スイッチを使用すると、cd他の人のように振る舞うことができます-P。したがって、元のコマンドmv~/shortcut)を実行して実行したディレクトリにある場合は、次の場所cd -P ..に移動します。実際親ディレクトリ(たとえば)を使用すると、単純な.dllを介して実際の現在のディレクトリにアクセス~/maindirできます。file.txtls file.txtcd -P .

おすすめ記事