Существует популярный метод, называемый отпечатком на холсте, описанным в этой научной статье: Веб никогда не забывает: механизмы постоянного слежения в дикой природе . Когда вы начнете искать его, вы будете удивлены, как часто он используется.
В статье также рассматриваются другие постоянные методы отслеживания, такие как evercookies, refawning http и Flash cookie, а также синхронизация файлов cookie.
Подробнее о снятии отпечатков пальцев здесь:
Попробуйте mkdir -p
:
mkdir -p foo
Обратите внимание, что это также создаст любые промежуточные каталоги, которые не существуют ; например,
mkdir -p foo/bar/baz
создаст каталоги foo
, foo / bar
и foo / bar / baz
, если они не существуют.
Некоторые реализация, подобная GNU mkdir
, включает mkdir --parents
как более читаемый псевдоним, но это не указано в спецификации POSIX / Single Unix и не доступно на многих распространенных платформах, таких как macOS, различных BSD и различные коммерческие Unix, поэтому этого следует избегать.
Если вы хотите получить ошибку, когда родительские каталоги не существуют, и хотите создать каталог, если он не существует, тогда вы можете test
] для существования каталога сначала:
[ -d foo ] || mkdir foo
Или, если вы хотите сначала проверить существование:
if [[ ! -e /path/to/newdir ]]; then
mkdir /path/to/newdir
fi
-e - это существующий тест для оболочки korn.
Вы также можете попробовать поискать руководство по оболочке korn.
1131827]
Старый проверенный и верный
mkdir /tmp/qq >/dev/null 2>&1
будет делать то, что вы хотите, ни с одним из условий гонки, многие из других решения имеют.
Иногда самые простые (и самые уродливые) решения являются лучшими.
Это должно работать:
$ mkdir -p dir
или:
if [[ ! -e $dir ]]; then
mkdir $dir
elif [[ ! -d $dir ]]; then
echo "$dir already exists but is not a directory" 1>&2
fi
, которое создаст каталог, если он не существует, но предупредит вас, если имя каталога вы пытаетесь для создания уже используется что-то, кроме каталога.