質問 DOSの「dir/s/b filename」に相当するLinuxとは何ですか? が近づきますが、そのような名前の付いたすべてのファイル名に対してファイル検索操作を実行することになります。
ただし、Windowsマシン上のディレクトリとのディレクトリ内容の差分比較を行い、それを上の同様に構築されたディレクトリと比較する必要があります[〜#〜] qnx [〜# 〜]ボックス。両方のマシンでディレクトリ列挙コマンドを実行し、テキストファイルを操作してパス区切り文字とルートドライブを変換し、それらを洞察に富んだ差分の互換性のある形式に変換しないようにします。
すべてのサブディレクトリとその中のファイルのフォルダーマニフェストをdir /b /s
で生成し、一連のパスとしてフォーマットされた出力を取得できます...
c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...
dir /s
がls -R
になることがわかりますが、/B
に相当するパスの出力形式を取得するにはどうすればよいですか?
find
は、必要なものすべてを提供する場合があります。 ls
だけよりも多くのテストを実行するため、オーバーヘッドが少し増えますが、出力にパス情報が必要な場合は、これが最も簡単な方法です。
2つのシステムを比較する場合は、まずテキスト編集を行ってから、\
を/
と入れ替え、C:
接頭辞を削除する必要があります。次に、リストを並べ替え、diff
を使用して変更を見つけます。 sed
があなたの友達になります。これも必要な場合は、コメントでフォローアップしてください。
ls
のフラグはありません。これは、あなたが要求することを実行しますが、他のいくつかのツールでそれを達成できます。最も簡単なのは、(おそらく)find
です。
find .
(それが重要であると仮定して)実際のパスにプレフィックスを付けるには、次のようにします
find "$(pwd)"
ツリー-if
-iインデントしない-fパスを出力する