cd ~ /generallstuff
должен быть cd ~/generallstuff
, иначе Вы изменитесь в свой корневой каталог вместо этого.
Нет такого места по довольно простой причине: нет никакого использования для одного. Нет никакой ситуации, о которой я могу думать, где можно использовать 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
Я думаю, что Вы просто ищете /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
/tmp
на перезагрузке или перезагрузках вообще в этом отношении. Если Вы хотите, чтобы что-то было удалено directement (как вопрос указывает), rm
это должно будет быть.
– frostschutz
25.07.2013, 15:46
/tmp
очищен, но OP хотел "указать/dev/null-like целевой каталог мусора, который автоматически очищен в конечном счете". Это точно что /tmp
для.
– terdon♦
25.07.2013, 16:00
/tmp
поскольку мусорный ящик походит на АБСОЛЮТНО УЖАСАЮЩУЮ идею мне. Это, очевидно, не предназначается с этой целью, и Вы помещаете оружие в ногу с помощью него для такого.
– goldilocks
25.07.2013, 16:37
/tmp
(который может быть отдельным, меньшим разделом, или даже в памяти в некоторых системах), и рендеринг его бесполезный для его реальной цели, и это - также проблема безопасности (рассмотрите: "Я сделан с этими банковскими выписками, я просто оставлю их на скамейке в парке, потому что кто-то очистит их в конечном счете").
– goldilocks
25.07.2013, 17:37