С GNU grep
следующее должно работать. Используя -f
опция, передача file1.txt
как "файл шаблона" - но также и передача это во втором разе как файл данных. Использовать -o
сообщить только о частях соответствия. Наконец извлекают те слова, которые соответствуют только однажды - они соответствуют строкам от file1.txt
это не находит соответствие в file2.txt
.
grep -h -o -f file1.txt file2.txt file1.txt | sort | uniq -u
ijkl
С этой командой
sudo du -csh *
вы отсутствуете скрытые каталоги, то есть *
расширяется ко всем именам, начиная с чего-либо, кроме точки (.
). Отказ Это означает, что все имена каталогов, начиная с точки, не передаются в команду du
, и их размер не учитывается.
В большинстве ситуаций добавляя . ?? *
к параметрам будет соответствовать потребностям:
sudo du -csh .??* *
Extra . ?? *
расширяется ко всем именам, начиная с точки и имея более двух персонажей. Цель состоит в том, чтобы исключить ..
, I.E. Родительский каталог из аргументов.
Гипотетические файлы и каталоги, такие как .a
.a
все равно будет пропущено, и те, которые начинаются с тире ( -
) будут лучше всего игнорироваться и в худшем случае ошибка.
Если у вас есть файлы или имена каталогов, начиная с приборных или имен, начинающихся с точки, а затем один символ, эта улучшенная версия будет должным образом сообщать о всех размерах каталогов:
sudo du -csh -- .[^.] .??* *
здесь -
- это Рассказывая du
, чтобы принять аргументы, начиная с примыкания, как имена, не варианты и . [^.]
добавляет к обработанным именам всех файлов и каталогов, начиная с точки, а затем любой один характер, но точка. Это охватывает все возможные имена для файлов и каталогов.
Несколько оболочек обеспечивают пользовательские обходные пути к этим вопросам именования:
Bash
:
shopt -s dotglob
sudo du -csh -- *
ZSH
:
sudo du -csh -- *(D)
KSH93
:
FIGNORE='@(.|..)'
sudo du -csh -- *
В crontab
:
* * * * * date >> dateFile.txt & sleep 30; date >> dateFile.txt &
Прямо, нет? =)
(Лучше поместить полный ПУТЬ команды дата
)
Другое решение:
while true; do date >> dateFile.txt & sleep 30; done
-121--118785- Это, кажется, сработало для ОП.
gdbserver :2345 ls > /dev/null 2>&1 &
Я думаю, что причина этого в том, что когда программа демонизирована, она закрывает все STDIO 0,1 & 2. Следующим вводом-выводом будет 0. Если программа попытается использовать 0,1 или 2 с такими вещами, как printf или scanf, она будет действовать на неправильный ввод-вывод или закрытый ввод-вывод. Например, если он демон-образный, сокет открывается на 0, если был STDIN, и если принтер называется, он будет записывать в неоткрытый FD, что приведет к аварийному завершению программы.
-121--155828-Есть также хорошие графические инструменты, чтобы помочь выяснить, что в занимает много места в каталоге.
Мне нравится Filelight , который является частью KDE. Здесь он изучает /var/cache на моем компьютере. Зеленый и желтый цвета относятся к apt , красный - к java , а пурпурный - к pbuilder .
Внутренние окружности непосредственных подкаталогов и они разбиты на более мелкие части во внешних окружностях. Этот инструмент позволяет легко просматривать и видеть, что занимает много места - не только большие файлы, но и большие коллекции небольших файлов.
Проблема, скорее всего, заключается в использовании флага -a
на rsync.
Это эквивалентно набору других параметров, включая -t
, который сохраняет время изменения файлов.
Поскольку вы не перезагружаете приложение на целевом компьютере, теперь вы зависите от этого компьютера, перечитывая некоторые или все эти файлы или нет, в зависимости от приложения и от того, наблюдаются ли изменения этих файлов.
Попробуйте использовать -rlpgoD
вместо -a
. «Неправильная» временная метка файлов, переданных в предыдущем rsync (но не в текущем), не должна вызывать никаких проблем, rsync
достаточно умна, чтобы заметить, что содержимое одинаково, даже если временные метки отсутствуют.
Если бы вы использовали опцию --местно
, вы, вероятно, столкнулись бы с дополнительными проблемами.
Проблема исчезла при использовании PrintWriter
и установке параметра UTF-8
вместо DataOutputStream
при записи в файл. (Java)
Не обязательно ответ, о котором вы ищете, но о чем-то хорошем можно узнать:
sudo du -max /var/lib/jenkins | sort -n
Это, вероятно, одна из команд, которые я использую чаще всего для такого рода вещей. «-a» включает общий размер каталога (так что вы увидите каталог, полный небольших файлов, как один большой каталог в окончательном выводе, а также как все файлы), и -x сохраняет его в одной файловой системе. Использование -m, а не -h делает его, возможно, труднее читать, но использование фиксированной единицы облегчает более портативную числовую сортировку (как в, все еще работает, когда у вас нет довольно новой команды сортировки, которая поддерживает -h модификатор).