それを打破することが最善のアプローチです。
まず、現在のディレクトリで find コマンドが実行されます。、値 1 とファイルのみに制限された検索タイプ (タイプ f) を使用して、検索を現在のディレクトリのみに深さまで制限し、-follow を使用してシンボリック リンクを取得する場合に備えて、実際のファイル プロパティを使用します。つまり、シンボリック リンクをたどります。
つまりここまで
探す 。-maxdepth 1 -タイプ f -follow
そこから単純な切り取り - 区切り文字が / (-d/) の場合は 2 番目のフィールド (-f2) を切り取り、ドット (find のリストから表示される現在のディレクトリ) を取り除きます。
それはここまでです。-maxdepth 1 -タイプ f -follow | カット -d/ -f2
次に、出力を xargs にパイプし、コマンド readlink を実行して、正規化モードでシンボリック リンクにリンクされた実際のファイルを出力します (チェーン リンク ファイルの名前を指定します)ここで例を確認してください
次に、区切り文字が「\」の場合、出力が cut に渡されて 7 番目と 14 番目のフィールドが取得されます。
その深さとのリンクがある場合にのみ、ここからの出力が表示されますが、可能です。
次に、sed 's/// /g' を使用すると、出力で "\" が検索され (エスケープは / によって行われます)、" " 空白に置き換えられます。sed のグローバル検索および置換モード - すべての \ を " " 空白に置き換えます。
コマンドの意図は何ですか? シンボリックリンクを探して、実際のリンクされたファイルを見つけると思います。7番目と14番目のフィールドだけを切り取り、スラッシュを置き換える理由がよくわかりません。おそらく、ユーザーはディレクトリの特別な深さを探していました。