Видео смотреть бесплатно

Смотреть фильмы бесплатно

Официальный сайт oriflame100 24/7/365

Смотреть видео бесплатно

02.04.2010 23:55

digiwhiteКак найти и удалить пустые директории и файлы

Оригинал
Вопрос: Как я могу найти пустые директории, которые не содержат ни одного файла в Linux? А так же, как я могу найти все пустые файлы (те, которые имеют нулевую длину)?

Ответ: Вы можете использовать unix команду find, чтобы получить список всех пустых файлов и директорий так, как это описано ниже.


Итак. Для поиска всех пустых директорий в текущей необходимо использовать find с параметром -empt
1
find . -type d -empty



Для удаления всех пустых директорий в текущей можно воспользоваться следующей командой:
1
find .-type d -empty -exec rmdir {} \;


Примечание: само-собой разумеется, что не рекомендуется удалять пустые директории из системных каталогов, например таких как /etc/.

Для поиска пустых файлов в текущей директории можно снова воспользоваться командой find с параметром -empty:
1
find . -type f -empty


Примечание: обычно пустые файлы создаются некоторым программами как своего рода марекры или как файлы блокировки или же как файлы-сокеты для обеспечения передачи данных.

Сколько же пустых файлов находится в текущей директории (и всех ее поддиректориях)? Для ответа на этот вопрос воспользуемся конвейером команд для передачи информации из команды find утилите wc:
1
find . -type f -empty | wc -l



Сколько же тогда непустых файлов находится в текущей директории (и ее поддиректориях)?
1
find . -type f -not -empty | wc -l


Примечание: в команде find опция -not инвертирует значение следующей за ней опцией.


Во всех вышеописанных примерах можно заменить точку ( . ) - символ, обозначающий текущую директорию на любой другой путь к папке, в которой вы желаете произвести поиск файлов (ну или директорий).


Тэги: bash find новичку
+ 9 -
Похожие Поделиться

stogerc 03.04.2010 00:13 #
+ 0 -
Возможно интересный будет блог.
digiwhite 03.04.2010 00:18 #
+ 1 -
Статьи там появляются каждую среду и пятницу. Они довольно таки разноплановы. Надеюсь что смогу более-менее регулярно выдавать переводы. Но опять таки же - не все подряд я думаю.
digiwhite 03.04.2010 00:18 #
+ 2 -
Да, делаю это для тех, кто в английском все же не силен.
ner_uto 03.04.2010 01:00 #
+ 2 -
Буду надеяться, что это станет регулярным:)
istp 03.04.2010 08:56 #
+ 0 -
Хм, уже подобное было на rus-linux.net, после чего индус с гик-стафа написал "Караул, я не давал согласия", и все это товарищам пришлось свернуть :(
exelens 03.04.2010 08:58 #
+ 0 -
Напишет и свернём.
digiwhite 03.04.2010 11:22 #
+ 1 -
Тогда я напишу автору и уточню данный вопрос. Если он все же будет против, тогда сверну это дело.
digiwhite 03.04.2010 12:21 #
+ 0 -
Автору написал, жду ответа.
exelens 03.04.2010 12:30 #
+ 0 -
=))) Да, лучше делать так.
Уже с кем только не договаривался, французы, австралийцы, британцы, американцы.

Но в основном все не против если пишешь, что они источник, а ты делаешь перевод.
Самый шумный инцидент был с французами =) Но мы потом через гуглопереводчик приписывались и договорились.
pluton 03.04.2010 15:52 #
+ 0 -
Автору написал, жду ответа.

я тоже переводил одну его статью (http://welinux.ru/post/715/). мне он не разрешил выкладывать полные переводы, а только начало и ссылку на его сайт.
так что, будем читать, как есть
exelens 04.04.2010 00:38 #
+ 0 -
мне он не разрешил выкладывать полные переводы

Почему ты мне об этом не сказал?
В след раз прошу говорить.
Zereal 04.04.2010 11:10 #
+ 0 -
может ему коллективно написать?
Zereal 03.04.2010 14:19 #
+ 0 -
А можно к вам присоединиться? (ради практики в английском и не только) =))
Shtsh 03.04.2010 14:32 #
+ 0 -
Да и я мог бы что-нибудь перевести
digiwhite 03.04.2010 14:44 #
+ 1 -
Я не против. Только давайте дождемся ответа автора. Хорошо?
mrded 03.04.2010 16:21 #
+ 0 -
find .-type d -empty -exec rmdir {} \;
у меня так не получилось. удалял вот так:
find . -type d -empty -delete
garillka 03.04.2010 23:00 #
+ 1 -
можно еще так
find . -type d -empty -print | xargs rm -fr
kstep 04.04.2010 14:41 #
+ 0 -
Лучше тогда так:

find . -type d -empty -print0 | zargs -0 rm -rf

чтоб не было ВНЕЗАПНОСТЕЙ с пробелами в именах файлокаталогов.
kstep 04.04.2010 14:41 #
+ 0 -
Конечно имел в виду xargs.
kstep 04.04.2010 14:49 #
+ 1 -
Только вот одного я не пойму: зачем сотый раз перепечатывать «man find»? Неужели стольким людям и правда лень прочитать хорошо написанный подробный ман?
digiwhite 04.04.2010 15:06 #
+ 0 -
Ваша вера в людей по истине безгранична. Аминь.
digiwhite 04.04.2010 15:08 #
+ 0 -
К сожалению я поторопился и в том моя вина. Ramesh ответил мне и указал на их copyright на сайте. Ниже ответ на письмецо:


Dmitry,

You cannot translate our article and reproduce on other site. It's against our copyright policy: http://www.thegeekstuff.com/copyright

We spend tons of time creating high quality articles, which you cannot simply translate and reproduce on other website. Hope you understand.

~ Ramesh
http://www.thegeekstuff.com

Таким образом автор не дал разрешение на размещение переводов. Вот так вот. Вероятно блог надо удалить.
MagoBuono 04.04.2010 15:21 #
+ 0 -
А если предложить присылать им переводы и пусть у себя выкладывают? Им польза, что на их сайт ходят за их статьями. Всем - что читать проще, ну и лицезреть свое имя около статьи как переводчика, тоже неплохо :)
MagoBuono 04.04.2010 15:22 #
+ 0 -
Правда... Тут они скорее всего захотят, чтобы переводы тогда были уж всего и стабильно. Что может осложнить задачу :)
digiwhite 04.04.2010 16:20 #
+ 0 -
Ну тут же еще Zereal и Shtsh предлагали помощь в переводах. Соответственно это дело можно организовать. Будет ли профит от этого welinux`у, вот в чем вопрос? Но вообще идея вроде не плохая, можно Рамешу предложить это.
MagoBuono 04.04.2010 18:34 #
+ 1 -
Да хз, по факту профита сюда никакого.

Только если договориться на что-то вроде:
...
Перевел: MagoBuono
http://welinux.ru/

Тогда хоть какой-то профит :)
Zereal 04.04.2010 19:23 #
+ 1 -
Сюда можно постить ссылки, так что не надо его удалять. Часть мылинуксоидов же знает английский.
razum2um 04.04.2010 18:58 #
+ 0 -
питон тож могет ;)
очередные однострочника от меня

python -c 'import os; map(lambda x: os.remove(x), filter(lambda x: not os.path.getsize(x), map(lambda x: os.sep.join(x), reduce(lambda x,y: x+y, map(lambda x: zip(*x), <((l<0>,)*len(l<2>),l<2>) for l in os.walk(os.getcwd())>)))))'
удаляет пустые файлы

python -c 'import os; map(lambda x: os.removedirs(x), filter(lambda x: not os.listdir(x), map(lambda x: os.sep.join(x), reduce(lambda x,y: x+y, map(lambda x: zip(*x), <((l<0>,)*len(l<1>),l<1>) for l in os.walk(os.getcwd())>)))))'
удаляет пустые дириктории (рекурсивно)

Разница существенная только в функциях: remove и removedirs; в определении пустоты: listdir и getsize; ну и цыферках 1 и 2, кто знает выдачу os.walk - тот сам поймет

kstep 04.04.2010 22:51 #
+ 0 -
Да, питон может. Перл тоже может то же самое. Однако в одной строке shell-сценария больше духа UNIX, чем в десяти тысячах строк С.
Сравни длину, логичность и лёгкость запоминания-воспроизведения строчки на баше+find со строчкой на питоне и ты достигнешь просветления.
kstep 04.04.2010 22:54 #
+ 0 -
* да и любой более-менее тьюринг-полный язык может решить любую вычисляемую задачу, которой является та, что поставлена в статье.
razum2um 05.04.2010 16:58 #
+ 0 -
дык я ж не спорю, оно наверняка еще и медленней работает...
просто под руку попалось, когда в функциональном подходе разбирался ;)

надо бы замутить топик про однострочники.
просто глянуть, куда может "дух" завести...
digiwhite 04.04.2010 22:54 #
+ 1 -
Ну да, это нормально бульдозером гвозди забивать. Ога.
Imp 05.04.2010 07:51 #
+ 0 -
Посмотрел сайт.. Неплохие статьи, кстати. Жаль, что здесь выкладывать не разрешили. Многим бы пригодились.

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн