2016-07-12 18 views
0

私は、フォルダAに開かれたターミナルがあります。現在のディレクトリは、後に別のユーザーによって移動された

hostname:/path/to> mv a /another/hidden/path/i/dont/know 

私がしたい別のユーザーが別の場所にフォルダを移動した

hostname:/path/to> mkdir a 
hostname:/path/to> cd a 
hostname:/path/to/a> cat > b.txt 

を彼がどこに行ったのか知っている。

古い端末はまだ動作しますが、pwdはLinuxファイルシステムの仕組みのために古いパスを表示します。旧絶対パスではありません、もちろん存在します。しかし、このソリューションは非常に難しいのであれば一つでも

hostname:/path/to/a> ls ../ 
... 
hostname:/path/to/a> ls ../../ 
... 
hostname:/path/to/a> ls ../../../ 
... 

:私は、上の階層をトラバースについて考え

hostname:/path/to/a> ls 
b.txt 
hostname:/path/to/a> pwd 
/path/to/a 
hostname:/path/to/a> ls /path/to/a 
ls: cannot access /path/to/a: No such file or directory 

し、各レベルで正しいフォルダを探しレベルには多くのサブディレクトリが含まれています。特定のケースでは、上位レベルのいずれかで権限がないため、不可能です。

Linuxのfsの仕組みのため、正確なパスを見つけることができないかもしれないと思います(たとえば、同じディレクトリにハードリンクがたくさんあるかもしれません)。私はパスの候補を取得する気にしない、私にディレクトリに近づける絶対パスを見つける方法はありますか?

+0

'find/-d -name" a "?または、「別のユーザーがフォルダを別の場所に移動しました」に基づいて、履歴を確認することができますか? – 123

+0

私は誰がそのユーザーであるかわかりません(実際にはITユーザーでした)。さらに、非常に特別なディレクトリ名(例えば、...)がある場合、それは動作しません。さらに、ディレクトリ名を変更することもできます(上記の例では、 "know"ディレクトリがない場合は "know"に名前を変更します)。 – MaMazav

答えて

0

-cminを使用することがあります:「開かれた」として、それが考慮されるように、私はユニークな名前のサブフォルダにlsofを使用することができます(私はそれに横断しなければなりません):

私はこのようなフォルダを持っているか、そのフォルダへの書き込み権限がある場合にのみ実行できます。また、フォルダの名前が変更されておらず、十分な名前が付いていることがわかっている場合は、単に "lsof | grep a"を試してみてください。

(削除された回答でここに示唆されている考えに基づいて...)。

+1

これにCDを入れるには、一番上のフォルダの位置を知る必要があります。この答えは意味をなさない。 – 123

+0

それは私のために働いていました...私はすでにディレクトリに開かれた端末を持っていると言っていましたが、シェルはそれが古いパスだと思います。 – MaMazav

+0

この例ではdirを移動しませんでした。 – Zuzzuc

2

ユーザーが名前を変更していないと仮定して、移動したディレクトリに変更すると、find/-d -name "a" -exec cd {} \;を試すことができます。あなたはそこに複数のディレクトリが同じ名前であり、あなたがディレクトリを移動したときに$minutesは時間である、find/-d -name "a" -mmin -$minutes -exec echo "path is {}" \;を使用して知っている場合find/-d -name "a" -exec echo "path is {}" \;

EDIT

を使用する移動ディレクトリへのパスを取得したい場合指定された期間内に変更されたすべてのdirs名 "a"を見つけるために変更されました。

誰かが名前を変更してディレクターを移動した場合は、手動で作業する必要があります。指定した期間内に変更されたすべてのディレクトリを一覧表示するには、find/-d -mmin -$minutes -lsを使用します。 hellerpopが言うように

、あなたは自分の質問に答える代わりに-mmin

+1

mvはmtimeだけではなく、-cminを使用する必要があります。 – hellerpop

+0

に1を加えたものですが、これは私の場合ではありません。 – MaMazav

関連する問題