Windowsコマンドラインの「dir / s / b」に相当するUnix(QNX)とは


9

質問はDOS「DIR / S / Bファイル名」のの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 /sls -R/Bパス出力フォーマットに相当するものを取得するにはどうすればよいですか?


6
答えは他の質問と同じですが、-nameオプションを省略しているため、名前でフィルタリングされません。
Barmar 2017

回答:


14

findあなたがあなたに必要なすべてを与えるかもしれません。ls単独で実行するよりも多くのテストを実行するため、オーバーヘッドが少し増えますが、出力にパス情報が必要な場合は、これが最も簡単な方法です。

2つのシステムを比較する場合は、まずテキストを編集してからと入れ替え\/C:プレフィックスを削除する必要があります。次に、リストを並べ替え、diff変更を見つけるために使用します。sedここであなたの友達になります。これも必要な場合は、コメントでフォローアップしてください。


18

lsあなたが求めることを行うためのフラグはありませんが、他のいくつかのツールでそれを達成できますが、最も簡単な方法は(おそらく)findです:

find .

2
または単にfind デフォルトの式は.
user4556274

3
そうだね。とにかく、Q / A投稿にデフォルトを含めることは良い習慣だと思います。
Bruno9779

19
@ user4556274これはGNU用の可能性がありますfindが、他の実装はPOSIX標準に準拠しており、ディレクトリオペランドが必要です。
クサラナンダ

5

ツリー-if

-iインデントしない-fパスを出力する


興味深いことに、あなたの答えにいくつかのコンソール出力を表示してください。QNXボックスからそのコマンドを見つけることができません-bash: tree: command not found
jxramos

私は私の電話にいるのでテストできませんが、linux.die.net
Stephen C

1
これはmama.indstate.edu/users/ice/treeからのものでありtree、多くのLinuxディストリビューションと同様にパッケージ化されています。
deltab

treeはディレクトリ構造を検査するための私の選択ツールですが、ほとんどのシステムにはデフォルトではインストールされません。
Bruno9779 2017

5

(それが重要であると仮定して)実際のパスにプレフィックスを付けるには、次のようにします

find "$(pwd)"

bashのようなシェルを使用している場合は、外部コマンドを呼び出す必要はありません。find "${PWD}"十分なはずです。しかし、それがQNXで機能するかどうかはわかりません。
CVn 2017

@MichaelKjörling:まあ実際のパスではなくシンボリックリンクのパスが欲しいなら...
Joshua

確かに、それはそれぞれの正確なセマンティクスに依存する可能性があります。少なくともGNU bashには、組み込みpwd/外部の/ bin / pwdも組み込まれていることを忘れないでください。これらも、シンボリックリンクが到達するディレクトリの処理方法が異なります。
CVn 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.