Що таке еквівалент Unix (QNX) командного рядка Windows "dir / s / b"


9

Питання Що таке Linux еквівалент DOS "dir / s / b ім'я файлу"? наближається, але він завершує відтворення операції пошуку файлів для всіх таких названих імен файлів.

Однак я прагну зробити вміст каталогів різним порівнянням з каталогом на машині 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еквівалент форматування вихідного контуру?


6
Відповідь така ж, як і в іншому запитанні, за винятком того, що ви виключаєте -nameваріант, тому він не фільтрується за назвою.
Вармар

Відповіді:


14

findможе дати вам все, що вам потрібно. Він має трохи більше накладних витрат, оскільки він виконує більше тестів, ніж lsпоодинці, але якщо ви хочете інформацію про шлях у висновку, то це може бути найпростіший спосіб досягти цього.

Якщо ви збираєтеся порівняти дві системи, то ви , ймовірно , слід зробити деякі редагування тексту першої і своп \з /, і видалити C:префікс. Потім сортуйте списки та використовуйте diffдля виявлення змін. sedбуде вашим другом тут. Слідкуйте за коментарем, якщо і ви цього хочете.


18

Не існує прапора, для lsякого можна буде виконувати те, що ви просите, але ви можете виконати його за допомогою декількох інших інструментів, найпростіших (можливо) find:

find .

2
або просто find Вираз за замовчуванням.
user4556274

3
Правда. Так чи інакше, я думаю, що це правильна практика включати за замовчуванням до публікацій Q / A, оскільки вони можуть бути очевидними не для всіх.
Bruno9779

19
@ user4556274 Це може бути для GNU find, але інші реалізації відповідають стандарту POSIX і вимагають операнду каталогу.
Kusalananda

5

дерево -як

-i to не відступ -f до шляху друку


Цікаво, покажіть якийсь консольний вихід до своєї відповіді; Я не можу знайти цю команду з мого поля QNX-bash: tree: command not found
jxramos

Я в телефоні, тому не можу його перевірити, але це знаходиться на сторінці чоловіка за адресою linux.die.net/man/1/tree
Stephen C

1
Це з mama.indstate.edu/users/ice/tree і пакується як treeу ряді дистрибутивів Linux.
дельтаб

treeє моїм інструментом вибору для перевірки структури каталогів, але він не встановлений за замовчуванням у більшості систем.
Bruno9779

5

Для того, щоб отримати фактичний шлях з префіксом (якщо припустити, що це важливо), зробіть це

find "$(pwd)"

Якщо ви використовуєте bash-подібну оболонку, не потрібно викликати зовнішню команду; find "${PWD}"повинно вистачити Не впевнений, чи працює це на QNX.
CVn

@ MichaelKjörling: Ну якщо ви хочете, щоб шлях по символічній лінії, а не реальний шлях ...
Джошуа

Правда, це може залежати від точної семантики кожного. Не забувайте, що принаймні в GNU bash є вбудований pwd, а також зовнішній / bin / pwd, який також відрізняється тим, як вони обробляють каталоги, досягнуті символьними посиланнями.
CVn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.