私は今日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)