Проблема «Недопустимый аргумент при чтении флагов» при удалении файлов в системе Linux

The goal is to check for the existence of a few directories and for the nonexistence of others.  [Emphasis added]

Основываясь на ответе Гленна Джекмана , мы можем проверить отсутствие других имен, подобных этому :

result=True
for dir in \
        "$PWD/dir1" \
        "$PWD/dir2" \
        "$PWD/dir3" 
do
    if ! [ -d "$dir" ]; then
        result=False
        break
    fi
done
for dir in \
        "$PWD/dir4" \
        "$PWD/dir5" \
        "$PWD/dir6" 
do
    if [ -e "$dir" ]; then                      # Note: no “!”
        result=False
        break
    fi
done
echo "$result"

Я использовал [ -e "$dir" ], чтобы проверить, существует ли "$dir"; т. е. если dir5существует, но является файлом, результатом будет False. Если вы хотите только проверить, являются ли имена во второй группе каталогами, используйте [ -d "$dir" ], как и в первом цикле.

Поскольку мы говорим о проверке существования вещей в текущем рабочем каталоге, возможно, нет необходимости указывать $PWD/в именах; просто сделай

for dir in \
        "dir1" \
        "dir2" \
        "dir3" 
do
      ︙
0
14.07.2020, 22:33
1 ответ

По состоянию на 15 июля 2020 г. в Linux отсутствует возможность проверки целостности файловой системы жесткого диска, отформатированного в NTFS.

Что я сделал?

  • Я загрузил бесплатную пробную версию Windows Enterprise в формате ISO
  • sudo apt-get remove virtualbox virtualbox-dkms virtualbox*
  • Установите последнюю версию Virtualbox из здесь
  • Загрузите соответствующую версию пакета расширения Virtualbox
  • Добавить в группу дисков меня как пользователя из-за ошибки отказа в доступе к жесткому диску
    • sudo usermod -a -G disk $USER
    • sudo usermod -a -G vboxusers $USER
  • Выполнитьsudo /sbin/vboxconfig
  • Запустите VirtualBox,и добавьте пакет расширения Virtualbox в Файл -> Настройки -> Расширения
  • Перезагрузите компьютер
  • Создайте ссылку на ваш физический жесткий диск с файловой системой NTFS (с USB или без ), используяVBoxManage internalcommands createrawvmdk -filename "</path/to/file>.vmdk" -rawdisk /dev/sdX
  • Создать машину -> Создать -> Windows 10 (64-разрядная)(любое совпадение)-> Создать виртуальный диск
  • Прикрепите загруженный ISO-образ бесплатной пробной версии Windows Enterprise
  • Во вновь созданном виртуальном образе Windows --> настройки -> Хранилище -> прикрепите образ vmdk вашего жесткого диска ntfs
  • Может произойти сбой. Не волнуйтесь. Мне тоже не удалось. Я ссылаюсь на него, потому что я его нашел. Это может сработать для вас.
  • Перейдите к виртуальному образу Windows --> настройки -> USB, отметьте USB 3, добавьте жесткий диск NTFS
  • Запустите виртуальный компьютер с бесплатной пробной версией Windows Enterprise.
  • Нажмите «Продолжить», «Восстановите компьютер» (слева внизу ), «Устранение неполадок», «Выполнить командную строку»
  • Перейдите на свой диск, написав, например. С:
  • Убедитесь, что это ваш диск, например. реж
  • Запустите chkdsk /f, когда вы находитесь на своем диске

Этот процесс устранил неисправность моей файловой системы NTFS. Я надеюсь, что это помогло и вам.

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

0
18.03.2021, 23:19

Теги

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