Файл не отображается с помощью vi, но отображается с помощью команды ls -l CD *

Я могу сделать ls -l CD* и посмотреть следующий вывод.

CDTEST userA RW RW R

Я зарегистрирован как userA. Но если я сделаю ls -l файл не появится. Если я делаю vi CDTEST он пытается создать новый файл с именем CDTEST . Если я делаю mv или rm я получаю сообщение без файла с именем CDTEST .

2 Solutions collect form web for “Файл не отображается с помощью vi, но отображается с помощью команды ls -l CD *”

Похоже, у вас есть каталог, соответствующий CD* . Когда вы запустите ls -l CD* вы увидите содержимое этого каталога, в которое входит файл CDTEST .

пример

Скажем, у меня была эта структура каталогов.

 $ tree . . `-- CD1 `-- CDTEST 1 directory, 1 file 

Если я запустил следующую команду из того же места:

 $ ls -l CD* total 0 -rw-rw-r--. 1 saml saml 0 Mar 25 21:41 CDTEST 

Вы можете получить список фактических каталогов, если вы добавите ключ -d в ls .

 $ ls -ld CD* drwxrwxr-x. 2 saml saml 4096 Mar 25 21:45 CD1 

Когда вы запускаете свои команды, они относятся к каталогу, содержащему CD1 , у которого нет файла по имени CDTEST . Вы также можете проверить, что находится в вашем текущем каталоге, например:

 $ ls -l 

Или вы можете отфильтровать его с помощью grep следующим образом:

 $ ls -l | grep CD drwxrwxr-x. 2 saml saml 4096 Mar 25 21:45 CD1 

ПРИМЕЧАНИЕ. Обратите внимание, что CD1 имеет d в начале? Это говорит вам, что это каталог.

Насколько я понимаю, файл CDTEST находится внутри папки. Когда вы выдаете команду,

 ls -l CD* 

Вышеупомянутая команда фактически отображает файл CDTEST внутри вашей папки, который отсутствует в текущем рабочем каталоге. Итак, если вы выполните ls -l он не отобразит файл CDTEST, который находится внутри папки. И именно по этой причине создается новый файл, когда вы делаете vi CDTEST или no file found ошибка no file found при выдаче команды mv или rm .

Вероятно, вы выписываете команду vi , mv или rm из pwd .

  • Список файлов размером более {размер} сортируется по дате
  • Как сделать ls, предупреждающий меня о родительском каталоге, является symlink
  • Настройки LS_COLORS для определенных типов файлов
  • sshfs: разрешение отклонено при попытке доступа к определенной папке
  • LS_COLORS для 256-цветного терминала
  • список всех файлов с расширением .log за исключением одного
  • Что на самом деле выводит «ls -dired-l» или «ls -D -l»?
  • изменить поведение LS_COLORS
  • Изменение интервала между файлами в ls
  • Исполняемые файлы показывают с символом * рядом с их именем в выводе ls
  • Как отобразить n-й результат команды ls?
  • Interesting Posts

    Как проверить, использует ли приложение память моей видеокарты?

    Вход из TCP-порта, разбивающего сообщения на символы, отличные от новой строки

    Как выбрать правильное программное обеспечение распределенной файловой системы для моего сервера Minecraft?

    Почему обратная косая черта преобразуется в пространство в выражении эха, если IFS = '\'?

    Сценарий оболочки для уведомления BackupPC не работает

    Настройте УАТС для переадресации вызовов на мой телефон только в случае

    Как показать длинные строки консоли в виде постраничного просмотра?

    Как остановить рекламные ролики «Зеленые двойные подчеркнутые ссылки всплывающих окон» в Chromium?

    Docker не смог найти доступный, неперекрывающийся пул адресов IPv4

    Использование | символ pipe из переменной $ заставляет его рассматривать как еще один аргумент в bash; как избежать этого?

    Debian Kde Iceweasel / Firefox: настройка пользовательских обработчиков протоколов

    Запустите команду с подстановочными знаками в каждом подкаталоге

    Обходная подпись GPG проверяет только один репозиторий

    Интерфейс Wifi, распознаваемый как ethernet

    Новый массив md является автоматическим чтением и имеет resync = PENDING

    Linux и Unix - лучшая ОС в мире.