LINUX.ORG.RU

3
Всего сообщений: 53

Не удаляется пустой каталог - атипичный случай.

Привет, комрады! Столкнулся с такой проблемой. Debian Jessie. Пытаюсь удалить пустой каталог - вывод ошибки «Каталог не пуст». rm -rf каталог не помогает. В каталоге ls -a выдаёт отсутствие файлов. (total 0) Права на каталог рекурсивно накинул полные. (drwxrwxrwx+ 1 admin admin). lsof блокировки каталога не показала. При этом каталог перемещать могу. Проверка диска на ошибки аномалий не выдала. Пробовал и от admin, и от рута. Не критично, но такая ситуация удивляет, интересно бы разобраться. Есть идеи?

 , ,

Adoliks ()

древовидная история в firefox или что-то вроде того?

У меня месяца два было открыто около 100 закладок, многие из которых я очень хотелось прочитать. Я просто на закрывал firefox нормально никогда. Но вот случайно я открыл еще одно его окно и как-то так получилось что те 100 закладок в первом окне канули в историю (в прямом смысле). Они никуда не делись, но управление историей в firefox - это какое-то издевательство. Хотя бы был какой-нибудь плагин который бы показал историю так:

 Youtube
   L_______ Шизофрения
   L_______ Лекции Сапольского
 Какой-то сайт
   L_______ Какая-то на нем страница

Ну или не знаю, ну что угодно. Я понаставил себе плагинов вроде Onee Tab, Tab Session Manager, но они все не торт. Хотя бы делались снапшоты раз в день и можно было вернуться к состоянию, например, вчера.

А теперь что делать х. его знает. Если я открою все вкладки из истории, то firefox сдохнет. Если я «экспортирую» их во внешний список и буду проверять одну за одной, то я поседею.

  1. Что можно сделать в существующей ситуации? Забить не входит в игру, там были действительно интересные лекции и документы
  2. Что такое поставить, чтобы такая ситуцация не повторилась больше? Я себе это так представляю, что есть плагин, который раз в заданный интервал времени сам делает снапшот, снабжает его датой (конечно позволяя сделать снапшот и «on demand») и предоставляет возможность вернуться к состоянию на день X, час Y?

Или есть какие-нибудь еще варианты?

 , , ,

dissident ()

rm with wildcard (*)

Понадобилось пройтись в куче мест командой вида

rm -f /dir/K.*
Не рекурсивно удалить в директории «/dir» все файлы с именем «K, точка и всё что угодно после неё». Напрямую из консоли работает.

Мест куча, написал баш портянку. В цикле проходит по списку целевых директорий. Но ничего не удаляет. Если убрать опцию "-f" пишет:

rm: cannot remove '/dir/K.*': No such file or directory
Конечно, файлы существуют. Т.е. rm вызванный из скрипта не раскрывает звёздочку?
for dir_path in "${DIRS[@]}"
do
    if [ -d "${dir_path}" ]; then
        rm -f "${dir_path}/K.*"
    fi
done

Почему оно не раскрывает звёздочку? Как заставить раскрывать?

 ,

deep-purple ()

bash как удалить файлы и директории, старше x-дней?

Есть некая директория Test. В ней находятся файлы и папки. Как удалить только то, что старше 10 дней к примеру.

Попытка применить

find  /volume1/Test -cmin +$storetime -delete

приводит к удалению и самой директории Test, если в ней нет свежих файлов, естественно.

 , ,

Illujanka ()

Тулза для удаления файлов с --exclude (типа rsync для копирования)

Привет, есть ли отдельная кроссплатформенная тулза для удаления файлов (Linux, macOs, freebsd), поддерживающая --exclude '*dir1/dir*/file (и желательно еще и списки в отдельном файле)? И желательно еще и эффективная.

Задрался с тем, что find везде разный со своими особенностями (print0? не, не слышали), да еще и на тестовых данных работает, а в реале нет (prune не работает с delete, а для тестов использовался print)

Не хочется писать 100500 реальных тестов для такой, казалось бы обычной, функциональности, которой нет нигде из коробки. Но в случае самостийного скрипта под тройку платформ - без тестов не обойтись, дело то ответственное - удаление.

Upd.

Как вам?

EMPTY=$(mktemp -d empty.XXXXXX --tmpdir)
rsync -r --delete --force --exclude 'other/needed/dir' --exclude '*by/mask.txt' ${EMPTY}/ garbage_dir
rmdir ${EMPTY}

Плюсы решения: rsync впитан всеми с молоком матери и является системнонезависимой программой, с четкоопределенными синтаксисом exclude и src списков. Мощь оптимизации - пробег по ФС с наилучшей эффективностью (--delete == --delete-during). Локаничность.

Осталось понять, откуда брать empty/, что-нибудь типа /dev/null но для пустой директории, что бы не быть завязанным на это имя empty/. Пока используется mktemp -d

Upd2.

Поржал с того, что а) в FHS не описана какая-нибудь абстрактная empty-dir (по аналогии с пустым файлом /dev/null) б) такой каталог есть по факту /var/empty (в некоторых дистрах /run/empty) в) он оккупирован sshd
facepalm

Upd3.

Тулза для удаления файлов с --exclude (типа rsync для копирования) (комментарий)

Заменил геморрой с exclude на перемещение исключений в служебную зону + обычный rm -rf

 , , ,

Deleted ()

Не удаляется папка - странное поведение

UPDATE1:
Пост более не актуален (удалить не нашел как). Не читайте это, не тратьте время!!!
Система

Ubuntu 16.04.5 LTS
Linux 4.15.0-43-generic

$ du -sh ./*
4.0K	./backup_back
70G	./bakcup
40K	./bin
40K	./checksum
2.3M	./packages
$ ls -la backup
ls: cannot access 'backup': No such file or directory
$ du -sh ./backup
du: cannot access './backup': No such file or directory
$ rm -r backup
rm: cannot remove 'backup': No such file or directory
$ rm -rf backup
$ du -sh ./*
4.0K	./backup_back
70G	./bakcup
40K	./bin
40K	./checksum
2.3M	./packages

Не могу никак удалить папку backup.Образовалась она при копировании с одного сервера на этот, бэкапа mysql (бинарные файлы количеством не больше 400). При бэкапе место на сервере закончилось, и он конечно же зафейлился. Сервер перезагружал, не помогло.

df говорит место фактически занято, если удалять другие файлы, это нормально отображается в нем.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             32G     0   32G   0% /dev
tmpfs           6.3G   29M  6.3G   1% /run
/dev/md1        233G  202G   20G  92% /
tmpfs            32G     0   32G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            32G     0   32G   0% /sys/fs/cgroup
/dev/md0        2.0G  317M  1.6G  17% /boot
tmpfs           6.3G     0  6.3G   0% /run/user/1001
tmpfs           6.3G     0  6.3G   0% /run/user/0

Первый раз сталкиваюсь с таким. Никто не знает как с этим бороться?

 ,

demsi ()

rm: cannot remove: Input/output error

Выдернул внешний HDD в процессе записи данных, теперь на нём есть несколько директорий, которые не получается удалить:

bash-4.3$ rm -rf X
rm: cannot remove 'X/Documents.tar.gz': Input/output error
rm: cannot remove 'X/Downloads.tar.gz': Input/output error
rm: cannot remove 'X/Music.tar.gz': Input/output error
rm: cannot remove 'X/Videos.tar.gz': Input/output error

HDD отключал/подключал, компьютер перезагружал — не помогает. Что ещё можно попробовать?

 ,

Hasek ()

Удалит файлы старше

Добрый день!

Подскажите пожалуйста как удалить файлы старше 1 дня. find /usr/logs/alarm -mtime +1 -name «*.log» -exec rm {} \;

find /usr/logs/alarm -type f -mtime +1 -exec rm -f {} \; Ни первый ни второй вариант не удаляют файлы вчерашние. Где ошибка подскажите?

 , ,

Elnar ()

rm -rf ~$USER, да дурак

В общем я удалил (случайно) свою домашнюю директорию. Что делать? Понятное дело что больше я так никогда делать не буду :)) А так же поставлю alias соответствующий, но можно без преколов?

Если есть возможность восстановить файлы - что посоветуете? С таким сталкиваюсь впервые.

 , , ,

KyKy ()

Как удалить 100 000 файлов

Проблема в том, что когда я начинаю удалять 100 000 файлов, то система виснет почти наглухо. atop показывает загрузку диска 120% и сайт ложится. Диск 2x2TB sata рейд soft. Удалять по 1 файлу очень долго. Как можно быстро удалить их? Система Debian GNU/Linux 9.4 (stretch).
Спс )

 ,

gobot ()

rm в AIX

Есть у нас знатоки AIXа? Объясните что за хрень.

+ rm -rf simdms/bin simdms/conf simdms/lib simdms/log
rm: Directory simdms/bin is not empty.
Как такое возможно вообще?

 ,

morse ()

«rm -f», который мы заслужили

POSIX will say in a future version that calling «rm -f» with no argument is OK; and this sensible behaviour seem to be already very widespread in «the wild» (and possibly lacking only on those systems that are well on their way to obsolescence).

http://horis.kanardia.eu/rok2/Builder/igep_old/buildroot-2015.08-rc1/output/b...

Это было обнаружено в тарболе свежего automake 1.16.1, где это также подчёркивается и в файле NEWS наряду с другими планами для automake 2.0.

Просто «rm -f», кстати, совершенно ничего не делает. Абсолютно. Но, это зачем-то протаскивают в POSIX...

 ,

saahriktu ()

Объясните как работает rm

Привет. Наткнулся на новость на ачате и решил немного поэкспериментировать.

Я создал из под рута файл (папку) с правами удалить файл может только владелец этого файла, а в консоле запустил rm -rf test из под юзера, где test - название моей папки, файла. В итоге моя файл (папка) удалилась. Вопрос: почему? Ведь права же запрещают удалять.

d--------T  2 root root       4096 фев 18 20:35 test

 , ,

CryNet ()

Файл не стирается

Приветствую!

Я стартую скрипт из screen-сессии. В скрипте присутствует команда rm. Периодически возникает ошибка:

rm: remove write-protected regular empty file '/tmp/meteo_suspend'? y
Права и, соответсвенно, пользователь установлены user:user и rw-rw-r--.

Файл должен стираться, когда комп выходит из спящего режима.

Разъясните, пожалуйста, чё не так?

 , , ,

forest22 ()

Bash, оставить видео с движением

Здравствуйте! У меня есть папка, куда валятся картинки, если есть детекция (наборсимволов.jpg), и папка куда валятся видео файлы (время начала записи ч_м_с.mp4). Суть вот в чем, нужно удалить файлы где нет движения. Пока я дошел до того, что лью в файл время правки (в формате 2017-05-04T14:45), а как проверять что время правки изображения попадает в диапазон времени правки видео, и его создания (не соображу).

Если кто то знает способ оставить в папке только видео где есть движение, напишите пожалуйста

 , ,

Rody2k17 ()

Не удаляется файл (Просто хочу заменить его)

lolpc ~ # rm -rf /proc/sys/kernel/osrelease

rm: невозможно удалить '/proc/sys/kernel/osrelease': Отказано в доступе

 

vova12345cheat ()

Bash. Удаление файлов по списку, в названии которых есть пробелы

Есть похожие темы на форуме, почитал. Сел на линь недавно, куски из разных тем не могу собрать воедино, хотя думаю это элементарно. Задача проста: есть список list.txt, в нём строки такого типа:

  • /files/file.txt
  • /files/file2.txt
  • /files/file3.txt
  • /files/new file.doc
  • /files/new file2.doc

Названия и расширения файлов могут быть разными, главное что в именах присутствуют пробелы!
Команды

rm -i $(cat /list/list.txt)
и
cat /list/list.txt | xargs rm -rv
удаляют только те файлы, в названии которых нет пробелов. Имена с пробелами воспринимаются как 2 файла, соответственно: не найдено. Пробовал в списке экранировать имена с пробелами (одинарные или двойные кавычки,\(.....\), пробел обратным слешем), не работает, опыта мало в таких тонкостях, подскажите куда копать.

 , , ,

egor666 ()

BTRFS: rm: cannot remove 'xxx': No space left on device

В ознакомительном порядке начал осваивать перспективную (как пишут в сети) файловую систему - BTRFS. Создал виртуальный диск для на виртуальной машине (DEBIAN), игрался с ним, встал вопрос оптимизации реального дискового пространства на хосте. Для этого попробовал занулить свободное место на виртуальном диске, чтоб потом можно было его схлопнуть. Зануление проводил с помощью sfill:

#> sfill -l -l -z -f -v
Принцип работы этой утилиты заключается в создании гигантского пустого файла (с нулями), заполняющего всё оставшееся пространство, и последующем его удалении. Вот на удалении и возникла ошибка в заголовке. Гугление не помогло. Находил много подобных проблем (не всегда таких же), но решений предложено гораздо меньше и ни одно из них мне не помогло. Смоделировал такую же ситуацию с пустым (изначально) виртуальным диском, но не с первого раза. Вот что имеем:
#> btrfs fi df /mnt
	System, single: total=4.00MiB, used=4.00KiB
	Data+Metadata, single: total=8.00GiB, used=7.98GiB
	GlobalReserve, single: total=164.00MiB, used=145.38MiB
#> mount | grep /dev/sdb
	/dev/sdb on /mnt type btrfs (rw,noatime,nodatasum,nodatacow,nossd,nospace_cache,clear_cache,enospc_debug)
#> ls -Al /mnt
	total 8355588
	-rw------- 1 root root 8556122112 Nov 15 08:14 oooooooo.ooo
#> rm -r -f /mnt/oooooooo.ooo
	rm: cannot remove '/mnt/oooooooo.ooo': No space left on device
#> echo > /mnt/oooooooo.ooo
	bash: /mnt/oooooooo.ooo: No space left on device
#> dmesg
	...
	[19226.492770] BTRFS info (device sdb): setting nodatacow, compression disabled
	[19226.492777] BTRFS info (device sdb): force clearing of disk cache
	[19226.492782] BTRFS info (device sdb): disabling disk space caching
	[19226.492786] BTRFS: has skinny extents
	[19226.501538] BTRFS: detected SSD devices, enabling SSD mode
	[19658.904879] BTRFS info (device sdb): disk space caching is enabled
	[19658.904883] BTRFS: has skinny extents
	[19658.912321] BTRFS: detected SSD devices, enabling SSD mode
	[19719.743095] BTRFS info (device sdb): disk space caching is enabled
	[19721.795072] BTRFS info (device sdb): disk space caching is enabled
	[19722.763731] BTRFS info (device sdb): disk space caching is enabled
	[19917.465373] BTRFS info (device sdb): not using ssd allocation scheme
	[19917.465388] BTRFS info (device sdb): disabling disk space caching
	[19917.465393] BTRFS info (device sdb): setting nodatacow, compression disabled
	[19917.465402] BTRFS info (device sdb): force clearing of disk cache
	[19917.465405] BTRFS: has skinny extents
	[19934.376503] BTRFS info (device sdb): disabling disk space caching
	[19939.483187] BTRFS info (device sdb): disabling disk space caching
	[19945.093364] BTRFS info (device sdb): disabling disk space caching
	[19947.757522] BTRFS info (device sdb): disabling disk space caching
Видно, что диск забит на 99% единственным файлом, удалить который невозможно. Проверка файловой системы ошибок не выдает. Все файлы на диске доступны для чтения. Пробовал манипуляции с монтированием на чтение и последующим двойным перемонтированием на запись, пробовал опции монтирования nodatacow, nospace_cache, clear_cache, enospc_debug. Соответственно ничего не помогло. У меня идеи кончились, решил зарегистрироваться на форуме, написать сюда. Понятно, что в случае с виртуальным диском это не проблема. Но что делать, если диск реальный и на нем есть полезные данные. Можно их скопировать на другой носитель, опять же при его наличии, а дефектный отформатировать. А есть ли альтернативный путь?

 ,

alexander_baranov ()

«sudo rm -r ~» == «sudo rm -r *» ?

Потому что выполнение обоих команд дает одинаковый эффект.

 

letni ()

Вопрос из собеседования. df, du, rm. Когда после удаления файла свободное пространство на диске прибавляется меньше, чем размер файла

Задача: на диске 10GB свободного пространства. Файл занимает 1GB. Файл удалили, но свободное место стало не 11GB. В каком случае это могло произойти?

 , ,

iljuase ()