dir /b /s /a:-Dに対応するLinux(すべてのファイルのフルパスを繰り返し印刷)

dir /b /s /a:-Dに対応するLinux(すべてのファイルのフルパスを繰り返し印刷)

私は今日Linuxに移行したばかりで、lsコマンドを使ってこれを行う方法を知りたいと思います。アイデアは、サブディレクトリを含むディレクトリへのフルパスを持つすべてのファイルをインポートすることです...私が使用したcmdコマンドは次のとおりです。

dir /b /s /a:-D

ベストアンサー1

私が知っている限り、あなたのdirコマンドはサブディレクトリ()に入り、/Sタイトルと要約(/B)をスキップしてそのファイルを省略します。D目次属性が設定されました(/A:-D

Linuxでこれを行う移植可能な方法は、findコマンドを使用することです。デフォルトではサブディレクトリに移動し、ディレクトリは以下を追加して省略できます-not -type d!-not

デフォルトでは開始点に基づいたパスが報告されるため、絶対パスを取得するには、シェルの現在の作業ディレクトリ変数を使用できますPWD

find "$PWD" -not -type d

再帰パターンマッチング(「globstar」とも呼ばれる)とglob修飾子をサポートするシェルを使用する場合は、他のオプションがあります。たとえば、次のことがzshできます。

ls -1d **/*(^D:A)

または単に

printf '%s\n' **/*(^D:A)

また、「非ディレクトリ」が必要なのか「一般ファイル」が必要なのかを検討することもできます。

find "$PWD" -type f

または(zsh)

printf '%s\n' **/*(.:A)

おすすめ記事