/dev/null-like автоматический каталог мусора для перемещений файла?

cd ~ /generallstuff должен быть cd ~/generallstuff, иначе Вы изменитесь в свой корневой каталог вместо этого.

1
25.07.2013, 14:57
2 ответа

Нет такого места по довольно простой причине: нет никакого использования для одного. Нет никакой ситуации, о которой я могу думать, где можно использовать mv глобально, но нет rm. Итак, в то время как /dev/null существует, потому что это удовлетворяет потребности, /dir/garbage делает, не потому что это не было бы.

Конечно, Вы могли сказать, что существует потребность в этой ситуации, чтобы сделать с проблемой: "что самый эффективный путь состоит в том, чтобы достигнуть этого (с точки зрения строк кода для редактирования)?" Предположение механизма, определяющего, какие файлы должны быть перемещены по сравнению с удаленным, состоит в том ли target_dir определяется или нет:

if [ -n "$target_dir" ]; then
    # move file
else
    # delete file
fi

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

Тем не менее Вы могли довольно легко реализовать свой собственный каталог мусора путем выполнения задания крона как это раз в час:

garbage_dir=/usr/local/garbage
for file in $garbage_dir/*; do
    rm -f -R $file;
done
3
27.01.2020, 23:17

Я думаю, что Вы просто ищете /tmp каталог. В большинстве случаев что-либо, что Вы помещаете, там будет удалено в следующий раз, когда Вы перезагружаете. Детали зависят от Вашей определенной ОС и управляются значением $TMPTIME переменная. Для многих дистрибутивов очищается значение по умолчанию /tmp каждая начальная загрузка, потому что $TMPTIME установлен на 0. В большинстве (если не все) дистрибутивы, это установлено в файле /etc/default/rcS.

Так, просто сделайте что-то вроде этого (обратите внимание, что я использую оболочку globbing и не анализирую ls):

process_cmd=echo
finish_cmd=mv
source_dir=some/source/path
target_dir=/tmp
for f in $source_dir/*; do $process_cmd "$f"; $finish_cmd "$f" $target_dir; done
2
27.01.2020, 23:17
  • 1
    +1 для globbing/quoting. Но не каждая система удаляет /tmp на перезагрузке или перезагрузках вообще в этом отношении. Если Вы хотите, чтобы что-то было удалено directement (как вопрос указывает), rm это должно будет быть. –  frostschutz 25.07.2013, 15:46
  • 2
    @frostschutz я добавил еще некоторые детали о как/когда /tmp очищен, но OP хотел "указать/dev/null-like целевой каталог мусора, который автоматически очищен в конечном счете". Это точно что /tmp для. –  terdon♦ 25.07.2013, 16:00
  • 3
    Используя /tmp поскольку мусорный ящик походит на АБСОЛЮТНО УЖАСАЮЩУЮ идею мне. Это, очевидно, не предназначается с этой целью, и Вы помещаете оружие в ногу с помощью него для такого. –  goldilocks 25.07.2013, 16:37
  • 4
    Это нисколько не, для чего это. Это для устройства хранения данных временных файлов; файлы tmp являются по существу связанным тщеславием программирования, и у них действительно есть цель. Они не "вещи, о которых Вы не заботитесь об этом, может быть удален без предупреждения"; они - вещи, значение использования которых не продолжится вне времени выполнения процесса, который создал их (следовательно, временный), и они, конечно, никогда не должны удаляться "без предупреждения". –  goldilocks 25.07.2013, 16:59
  • 5
    Точка, это не для мусора (ни один из файлов, которые Вы найдете там, обычно мусор), и в то время как это может работать на некоторых людей в некоторых ситуациях, это не хорошее решение: это подвержено переполнению /tmp (который может быть отдельным, меньшим разделом, или даже в памяти в некоторых системах), и рендеринг его бесполезный для его реальной цели, и это - также проблема безопасности (рассмотрите: "Я сделан с этими банковскими выписками, я просто оставлю их на скамейке в парке, потому что кто-то очистит их в конечном счете"). –  goldilocks 25.07.2013, 17:37

Теги

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