Помимо уже упомянутого )apt -offline (.
Я рекомендую загружать нужные вам программы в виде файлов.deb и их соответствующих зависимостей. Сборка пакетов из исходного кода не только требует много времени, но и потенциально может привести к несовместимости версий между программами. Когда ваш компьютер находится в автономном режиме, попробуйте установить программу (mercurial, например):
Вы должны (в конечном итоге )получить вывод зависимостей, и все они должны быть совместимы, обязательно загрузите их для своей версии mint/ubuntu.
Затем вы можете найти страницу загрузки на веб-сайте Ubuntu:
Затем перейдите на страницу загрузки этих пакетов и загрузите их с любого указанного зеркала:
Наконец, когда у вас есть все файлы.deb, перенесите их на автономный компьютер. Затем вы можете просто установить все файлы.deb с помощью dpkg:
Проблема в том, что опции -atime, -ctime and -mtime
делают неожиданное округление. Объяснение находится в человеке найти под-atime
:
-atime n
File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago.
В современных версиях find есть альтернативы:
-mmin
(и варианты )округляют до минут, а не до дня. Итак, -mmin "+$(( 60*24*2 ))"
работает на основе текущего времени дня 2 дня назад.
-daystart
измеряет время на основе 00 :00 :00 текущего дня. Это довольно грубый инструмент, и он чувствителен к порядку параметров в командной строке.
Если вы работаете в системе без этих последних расширений, чтобы найти (, например. Solaris или AIX ), или вы не хотите, чтобы все ваши служебные операции имели принудительный полуночный отсчет, и не хотите, чтобы каждый раз при выполнении было другое время отсечки, хорошей альтернативой является использование эталонного файла.
Paul--) touch -t 202009020301 FileToRetain
Paul--) touch -t 202009020300 FileOnCusp
Paul--) touch -t 202009020259 FileToDelete
Paul--)
Paul--) touch /tmp/myRefFile -t $( date -d '4 days ago' '+%Y%m%d0300' )
Paul--) ls -ltr /tmp/myRefFile.
-rw-r--r-- 1 paul paul 0 Sep 2 03:00 /tmp/myRefFile
.:
total 0
-rw-r--r-- 1 paul paul 0 Sep 2 02:59 FileToDelete
-rw-r--r-- 1 paul paul 0 Sep 2 03:00 FileOnCusp
-rw-r--r-- 1 paul paul 0 Sep 2 03:01 FileToRetain
Paul--) find. -type f ! -newer /tmp/myRefFile -delete
Paul--) ls -ltr /tmp/myRefFile.
-rw-r--r-- 1 paul paul 0 Sep 2 03:00 /tmp/myRefFile
.:
total 0
-rw-r--r-- 1 paul paul 0 Sep 2 03:01 FileToRetain
Paul--)
Эталонный файл не должен находиться в очищаемом каталоге (он может удалиться в интересный момент ), и в продакшене вам, вероятно, следует использовать mktemp
или поставить Pid
как часть имени чтобы избежать проблем с одновременным использованием, и rm
его впоследствии.
Конечно, если у вас нет современной находки, то, вероятно, у вас нет и date -d
. Моя уборка выполнялась ежемесячно, поэтому в Solaris нужно запрограммировать переполнение месяца/года, но не конец месяца -или скачок -года --, просто установите dd=01.Но выравнивание по определенному дню недели или месяца — это еще что-то, что find сам по себе не может сделать чисто :date -d 'last Sunday 06:00'
, и полезен в качестве справочного файла.
find path -type f -daystart -mtime +5 -exec rm -rvf {} \;