Пояснення% директив у find -printf


20
find /tmp -printf '%s %p\n' |sort -n -r | head

Ця команда працює чудово, але які %s %pваріанти тут використовуються? Чи є інші варіанти, які можна використовувати?


4
Погляньте на сторінку пошуку.
Сайрус

Відповіді:


25

Які варіанти% s% p тут використовуються?

Від людини сторінці :

% s Розмір файлу в байтах.

% p Ім'я файлу.

Прокрутіть униз на цій сторінці за межами всіх звичайних літер для printf та прочитайте частини, що входять із префіксом%.

% n Кількість жорстких посилань на файл.

% p Ім'я файлу.

% P Ім'я файлу з назвою початкової точки, під якою його було видалено.

% s Розмір файлу в байтах.

% t Час останньої модифікації файлу у форматі, поверненому функцією C `ctime '.

Чи є інші варіанти, які можна використовувати?

Існує. Дивіться посилання на сторінку.


@don_crissti Я ніколи не зрозумію, чому люди віддають перевагу випадковій веб-документації перед документацією, встановленою на їхніх системах (що має додаткову перевагу від того, що насправді стосується їхньої системи).
Kusalananda

1
@Kusalananda - Ну, я можу придумати один сценарій, за якого люди включали б посилання на веб-сторінку замість цитати з документації, встановленої на їхній системі: вони не знаходяться на машині Linux під час написання публікації. .. Однак посилання має вказувати (imo) на офіційні документи (звідси мій коментар вище, який з незрозумілої причини модники видалили ...). Що ж убік, я повністю з вами згоден: ОП повинен ознайомитися зі сторінкою керівництва, встановленою на їхній системі.
don_crissti

2
@don_crissti Або вони на сервері, на якому не встановлено manpages, що досить часто.
runlevel0

Моя сторінка з керівництвом, як правило, з FreeBSD. Якщо я не матиму доступну VM Linux. У мене таке враження, що більшість питань ґрунтуються на GNU / Linux.
Геннес

3
Слід також додати, що, крім переважаючого та часто непереборного випуску сторінок man для відносно недосвідчених користувачів, я, як програміст / користувач, як правило, шукаю нові рішення, які не охоплюють сторінки man. Наприклад (тільки зараз), конкретний формат дати для виводу команди «знайти». Сторінка man не каже вам ставити "% T" перед кожною змінною - принаймні, не те, що я навіть знайшов це саме шукати. Ви могли б провести цілий день, намагаючись з'ясувати це. (Або просто дайте.) Тоді як пошук на стек-біржі дасть відповідь, чітко пояснений, у першому результаті.
Джим

0

Barrett 2012 говорить на сторінці 74:

"-printfstring надрукувати заданий рядок, який може мати заміни, застосовані до нього за допомогою функції бібліотеки С. printf()"

і рекомендує, звичайно, сторінку сторінки для повного списку варіантів. Хоча такі речі find . -printf '%s %p\n'пояснюються, інші цього не роблять. @jimзгадав про використання %T. Я особисто використовую сценарій з рядком, подібним до того, що find . -printf '%T@ %p\n'ніколи не зможу зрозуміти, що це %T@таке. Чи може хтось посилатися на джерело, що пояснює ці параметри, не знайдені в мапажах?


1
Хто цей хлопець Барретта?
Kusalananda

@Kusalananda, Даніель Дж. Барретт, автор "Посібника по кишені Linux", цитування сторінок стосується другого видання. Перш ніж бігти до бібліотеки, будьте попереджені, що вирішення цього питання полягає не в тому, щоб знайти там бджолу. Інакше дуже хороший путівник.
чокло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.