как передать событие в bash?

Вы можете использовать ls -A, чтобы показать также скрытые файлы (, но не .и ..:, чтобы включить те, которые вы можете использоватьls -a).

В вашем случае:*расширяется оболочкой, поэтому lsувидит некоторые файлы и некоторые каталоги. Если в качестве аргумента указан каталог, будут перечислены файлы в этом каталоге. Вы можете использовать ls -d *, чтобы принудительно перечислить файлы в аргументах, а не перечислять файлы в каталогах в аргументах. Примечание:ls -d.*мало чем отличается от echo.*(, но некоторым форматированием ).

2
22.05.2020, 14:58
1 ответ

Из связанного руководства:

The trailing ‘?’ may be omitted if the string is followed immediately by a newline.

Поскольку в строке , а не , за которой сразу следует перевод строки, она должна иметь завершающий?:

!?nameOfFile? | sed -n 'p1' | xargs cd

Хотя это вам не поможет, так как xargs cdбудет запускать cdв отдельном процессе, поэтому ваша оболочка не пострадает. Вам понадобится что-то вроде:

cd "$(!?nameOfFile? | head -n1)"
3
18.03.2021, 23:34

Теги

Похожие вопросы