Доступ к неназванной папке через терминал

У меня есть карта флэш-памяти, которую я использую для включения в магазинах печати, чтобы сделать мою печать. В первый раз, когда это было заражено вредоносным программным обеспечением Windows "Gamarue", я скопировал файлы с помощью Ubuntu и отформатировал его, никакой причиненный вред. Я направляюсь на вниз в совершенно другой магазин печати, и он заражен снова с тем же вредоносным программным обеспечением.:(

Так или иначе интересный вопрос, вредоносное программное обеспечение скрывает Ваше содержание в "неназванной" папке и не подозревающему пользователю, травит Вас в двойной щелчок a .lnk файл, который, я принимаю, позволяет вредоносному программному обеспечению копировать на Ваш компьютер. Я не мог видеть эту неназванную папку в то время как в Windows.

При использовании средства просмотра файла в Ubuntu я вижу, что существует папка там без имени, содержащего все мои файлы. Теперь только для ударов, я решил получить доступ к этой папке через терминал. Все, что я должен сделать, к cd в /media, просмотрите папку и скопируйте папки, если я требую права? Хорошо нет...

$ ls -l
total 20
drwx------ 1 seelan seelan  4096 Sep 27 10:11 System Volume Information
-rw------- 2 seelan seelan   817 Sep 27 10:11 Theia (30GB).lnk
drwx------ 1 seelan seelan 12288 Sep 27 10:11  

Tadaaaa неназванная папка/каталог, к которой я не могу получить доступ через терминал. Как я пошел бы о доступе к этой папке? Какие-либо идеи?

Править: немного больше исследования его показывает, что непечатаемый символ является восьмеричным символом 302 240. это было сделано "ls-l | передозировка-c" показ восьмеричного символа, занимающего место. состояния канала, что "Символьно-парный \302\240 является "ПРОСТРАНСТВОМ без повреждений" от кодировки UTF-8".. только, выходят, теперь Вы, не может переименовать файлы через терминал, и Вы не можете ввести восьмеричные символы при копировании файла, или можете Вы?

Редактирование ответа: Рассмотрение его было непечатаемым символом, я искал способ изменить кодирование терминала, надо надеяться, я мог найти способ просмотреть название папки. По некоторым причинам при попытке различных учебных руководств, я попробовал к CD в папку с помощью подстановки переменных.

cd $'\302\240'

Далее ища вещи на этой веб-странице. я узнал, что это развернет единственный/много Escape восьмеричные символы в его соответствующий ascii/unicode символ. Используя то же понятие можно сделать и удалить каталог, если Вы хотели бы.

3
задан 29 October 2015 в 13:20

2 ответа

У Вас не может быть файла с пустым названием. Однако имя могло быть чем-то, что Вы не видите. Как пространство, неразрывное пространство, вкладка, горизонтальная вкладка или даже символ, который не является даже печатаемым как конец символа сообщения или символа ESC.

Для показа этого я только что создал папку, имеющую пробел как его имя и пыльник одно наличие не тормозящего пространства как его имя.

$ ls -l
total 8
drwxrwxr-x 2 christoph christoph 4096 Sep 30 22:02  
drwxrwxr-x 2 christoph christoph 4096 Sep 30 22:02  

, Как Вы видите, нет никакого очевидного способа видеть, который - который (хотя неразрывное пространство действительно отображено (в Вашем браузере: просто скопируйте одну из строк, нажмите ctrl + F для поиска его, и только 1 результат покажут), но ls -l не отображает все символы, таким образом, возможно сделать различные папки с на самом деле той же выходной строкой ls -l).

при использовании какой-либо версии Ubuntu, но 15.04, сначала выполните эту команду:

sudo apt-get install nautilus-open-terminal

Это даст Вам запись Open in Terminal в контекстном меню Наутилуса. Если это не делает Наутилуса, должен быть перезапущен, так так выйти из системы и входить в систему снова. Ubuntu 15.04 уже идет с этой записью, таким образом, Вы не должны устанавливать nautilus-open-terminal, или у Вас будет запись дважды.

Затем можно использовать открытое окно терминала, чтобы сделать независимо от того, что Вы хотите сделать в этом местоположении.

Редактирование: Я предположил, что Вы хотели открыть отделение в терминале. Если Вы хотите просмотреть его и только иметь терминал в наличии, можно использовать терминальный файловый браузер как Ranger. Здесь страница, показывающая Вам, как установить и использовать ее.

2
ответ дан 1 December 2019 в 15:56

Простой способ состоит в том, чтобы просто скопировать все Ваши файлы, не перемещаясь в папку:

find /media -mindepth 2 -not -path '/media/System*' -exec cp -rt /new/dir {} +

Давайте сломаем это:

  • find /media : поиск в каталоге /media
  • -mindepth 2 : только ищите файлы или каталоги, которые находятся в подкаталоге /media. Это гарантирует, чтобы Вы пропустили вещи в /media самостоятельно.
  • -not -path '/media/System*' : исключите любые файлы или каталоги, путь которых соответствует /media/System*. Это сделает find проигнорируйте что-либо в /media/System Volume Information каталог.
  • -exec cp -rt /new/dir {} : скопируйте что-либо найденное в /new/dir.

Вот именно Ваши файлы были скопированы, и Вы не должны cd на странное имя.


Только для забавы, к на самом деле cd в это можно попробовать несколько вещей:

  • Используйте -F опция ls, аннотировать тип перечисленного объекта. Это добавит a / после каждого имени каталога:

    $ ls -lF media/
    total 8
    drwxr-xr-x 3 root root 4096 Oct  1 02:09  /
    drwxr-xr-x 2 root root 4096 Oct  1 02:09 System Volume Information/
    

    Теперь, скопируйте символы, которые Вы не видите, удостоверяясь, что Вы оставляете одно пространство после времени, остальные будут названием Вашего каталога. Затем просто вставьте это в терминал в кавычках:

    cd /media/" "/
               ^----- this is the pasted character.
    
  • Брать имя каталога является пространством, можно сделать:

    cd /media/" "
    
  • Если имя является другим пробельным символом (символами), можно попытаться соответствовать ему и cdлуг тот путь:

    for d in media/*; do [[ "$d" =~ /[[:blank:]]  ]] && cd "$d"; done  
    
2
ответ дан 1 December 2019 в 15:56

Другие вопросы по тегам:

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