conEmuを使用しているWindowsには、ある種のLinux端末があります。
Windowsでは、sublimeを使用してファイルを開くように変数を設定し、次のようにファイルを開くことができます。
$subl path/filename
仮想マシンがあり、ローカルと仮想ホストの両方に同じコードがありますが、パスは異なります。
D:\work (in win)
/home/work/ (in the server)
私がするなら:
$ ssh [email protected] 'find . -type f -name example.txt'
わかりました。/home/work/public/example.txt
しかし、崇高な内容で開くために使用することはできません。
subl $(ssh [email protected] 'find /home/work -type f -name example.txt') //doesn't work
したがって、/home/work で始まるパスだけが必要です。public/example.txt (or ./public/example)
find
を使用して開始点からルートを取得するにはどうすればよいですか?
答え1
.
問題がないと言ったので、まずディレクトリにCDを移動できます。
(cd somedir && find . [...])
%P
GNU findを使用すると、書式指定子を使用することもできます。
find somedir -printf '%P\n' # \0 is safer if you can interpret nulls as delim
からman find
:
%P
:ファイル名とファイルが見つかった開始点の名前が削除されました。
答え2
解決策は「簡単」です。自宅へのパスを表示してから文字列からテキストを削除する~
ためにのみ使用できます。sed
find . -type f -name file | sed "s+$(echo ~)++"
$(echo ~)
結果echo ~
は/家/職場です
Linuxに文字列内の変数を見つける必要があると言う"
のではなく、次のものを使用する必要があります。'
パスの問題を回避するために、/(より一般的に使用される)の代わりに+を使用します。
sed 's//home/work//' cause problems
sed 's+/home/work++' doesn't