Найти команду в linux и удалить, но проверить с помощью печати, результатов нет

Помимо уже упомянутого )apt -offline (.

Я рекомендую загружать нужные вам программы в виде файлов.deb и их соответствующих зависимостей. Сборка пакетов из исходного кода не только требует много времени, но и потенциально может привести к несовместимости версий между программами. Когда ваш компьютер находится в автономном режиме, попробуйте установить программу (mercurial, например):

  • sudo apt -получить установку ртути

Вы должны (в конечном итоге )получить вывод зависимостей, и все они должны быть совместимы, обязательно загрузите их для своей версии mint/ubuntu.

Затем вы можете найти страницу загрузки на веб-сайте Ubuntu:

Затем перейдите на страницу загрузки этих пакетов и загрузите их с любого указанного зеркала:

Наконец, когда у вас есть все файлы.deb, перенесите их на автономный компьютер. Затем вы можете просто установить все файлы.deb с помощью dpkg:

  • dpkg -i ~/Загрузки/ *.deb

1
06.09.2020, 11:25
2 ответа

Проблема в том, что опции -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', и полезен в качестве справочного файла.

0
18.03.2021, 23:06
find path -type f -daystart -mtime +5 -exec rm -rvf {} \;
0
18.03.2021, 23:06

Теги

Похожие вопросы