Оболочка POSIX (поэтому включает bash
) эквивалентный был бы:
${FOO:-${BAR:-default}}
См. также:
${FOO-${BAR-default}}
вариант, который проверяет, установлена ли переменная или не вместо того, решает ли это к пустой строке или не (который имеет значение в случаях, где переменная установлена, но пуста).
Выполненный chkdsk /f
в Windows. Это должно удалить файлы с недопустимыми символами или зафиксировать их имена файлов так, чтобы они могли быть удалены вручную.
NTFS поддерживает "потоки", как "ветвления" + HFS и в отличие от чего-либо в обычных файловых системах Unix.
Конвенция по Windows состоит в том, чтобы назвать потоки как часть имени файла, разделив имя файла от потокового названия с a :
, то, которое является, почему Вы добирались, "не могло найти этот объект" - для имени "здесь: попробуйте это", Windows искал поток, "пробуют это" в файле "здесь". Я заключаю, что можно сказать Windows не анализировать имена файлов как это, но я не знаю как.
ntfs-3g имеет опцию монтирования включить совместимый парсинг потокового имени, смонтировать фс с -o streams_interface=windows
и ntfs-3g будет рассматривать :
тот же путь в именах файлов. Таким образом проверять на это, mount|grep windows
должен работать достаточно хорошо.
Попытайтесь архивировать с winrar - выбор 'удаляет файлы после архивации' в возможностях архивирования. Это должно переместить Ваши файлы в rar файл и удалить исходные файлы. Затем удалите rar файл.
Я не понимаю, почему это вызывает Ваши проблемы. Следующие тесты были запущены в файловой системе NTFS:
$ mount| grep win
/dev/sda3 on /winblows type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
$ grep winb /etc/fstab
UUID=C0BCD19CBCD18D72 /winblows ntfs defaults 0 0
$ pwd
/winblows/foo
Так, я нахожусь в разделе NTFS, и я работаю:
$ touch :a a: a:b
$ ls
:a a: a:b
$ rm :a a: a:b
Все те команды работают, так или иначе, возможные обходные решения:
rm \:a
rm -- :a
rm ':a'
rm *:*
find . -name "*:*" -delete
streams_interface
смонтируйте опцию: "При помощи опций "streams_interface=windows", с ntfs-3g драйвером (не возможный с lowntfs-3g), Вы сможете считать любые именованные потоки данных, просто путем определения названия потока после двоеточия. Например: cat some.mp3:artist
. Названные потоки данных действуют как нормальные файлы, таким образом, можно читать от них, запишите в них и даже удалите их (использование комнаты). Можно перечислить все именованные потоки данных, которые файл имеет путем получения "ntfs.streams.list" расширенный атрибут".
– jthill
22.11.2013, 04:00
Скажем иначе: будьте [117630] очень, очень осторожны [117631] под управлением Windows [117632]chkdsk[117633] на файловой системе NTFS, которая была написана с использованием ntfs-3g под Linux. [117634]Вы потеряете все файлы, содержащие двоеточия.
Есть два последствия использования ntfs-3g, которые взаимодействуют между собой:
Tuxera придерживается буквы спецификации NTFS, которая допускает двоеточия в именах файлов. Однако практически никто не использует файловые системы, которые являются исключительно не совместимыми с Windows NTFS, и никогда не предназначались для использования с Windows, поэтому почти каждый на самом деле нуждается в небезопасном поведении.
Tuxera рекомендует отказоустойчивый способ восстановления поврежденной файловой системы NTFS - это загрузка операционной системы Windows, и запуск [117978]chkdsk[117979]. (Это также произойдет автоматически, если вы загрузите операционную систему Windows и файловая система будет обнаружена как нуждающаяся в восстановлении).
Если вы этого не сделаете, то, возможно, вы не сможете удалить или сохранить большинство или все ваши файлы Windows-valid (файлы, содержащие двоеточия и т.д.). После того, как вы создали недействительные файлы, Windows будет считать файловую систему поврежденной до тех пор, пока эти файлы не будут очищены -- и только Windows сможет восстановить файловую систему. Поэтому восстановить или удалить файлы из Linux будет невозможно.[117011].