Використовуючи лише 1 командний рядок, як я напишу команду, яка складе довгий список всіх файлів у каталозі зберігання / файлів


0

Використовуючи лише 1 командний рядок, як я напишу команду, яка складе довгий список усіх файлів у каталозі зберігання / файлів та передасть висновок команді grep, яка знайде всі елементи, що містять слово pizza?

Це було б це ?:

ls -l /storage/file | grep pizza

echo storage/file/*pizza*?
twalberg

1
Ви маєте намір шукати назви файлів, які містять слово "pizza", файли, які містять слово "pizza" у вмісті файлу, або рядки lsвиводу, що містять слово "pizza" (до яких можуть входити користувачі чи групи, або назви файлів)? Ось швидкий натяк: що б ви не робили, команда повинна буде десь містити слово "піца", чого ваша поточна спроба не робить.
Брайан Кемпбелл

Я знаю, що ви просили, grepале чи розглядали ви findслово піца? find /storage/file -name pizza

Відповіді:


3

Ось вам:

grep -l pizza /storage/file/*

Це надрукує назви всіх файлів, /storage/file/що містять слово pizza.

Якщо ви хочете довгий список цих файлів, ви можете зробити будь-який із них:

ls -l $(grep -l pizza /storage/file/*)
grep -l pizza /storage/file/* | xargs ls -l

grepмає два режими роботи: він шукає шаблон у файлах, перелічених у командному рядку АБО якщо файлів не вказано, то він шукатиме у стандартному вході, який може надходити з труби. Отже, метод 1: grep pattern file1 file2або метод 2 : some_cmd | grep pattern. Правильний спосіб залежить від того, що ви хочете зробити.
janos

Цитувати потрібно лише тоді, коли шаблон містить символи, які щось означають в оболонці. Бо "піца" grep pizza- це добре, але для "піци" вам доведеться писати grep 'a pizza'.
janos

0

Завжди є твій друг, findкоманда.

find /storage/file -name '*pizza*' -exec ls -l {} \;

Зверніть увагу на одиничні лапки навколо імені, щоб оболонка не розширила глобус занадто рано. Ця форма легко пристосовується до того, що вони також шукають IN-файли:

find /storage/file -name '*pizza*' -exec grep cheese {} \;

Тут знаходять усі файли з ім’ям піци, а потім показують усі місця, про які вони згадують.

Або ви мали на увазі просто знайти в каталозі всі файли, що говорять про піцу, а потім довго перелічити їх?

ls -l $(grep -l pizza /storage/file/*)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.