web-dev-qa-db-fra.com

Comment naviguer dans des répertoires nommés avec des caractères non latins?

Je ne sais pas si c'est possible et comment cd par exemple dans un répertoire qui n'est pas nommé avec des caractères latins.

Exemple: $ cd άλφα ou $ cd альфа

Mise à jour: dans un terminal, c'est ok, mais pas dans un environnement CLI.

4
Nikos Grigoriadis

Oui, bien sûr, c'est possible tant qu'il existe des répertoires avec ces noms.

La manière simple:

terminal

Comment j'ai fait:

  • J'ai exécuté la commande ls dans le répertoire parent où se trouve un répertoire nommé avec des caractères non latins.
  • Avec la souris, j'ai sélectionné le nom du répertoire (rien de plus).
  • J'ai tapé cd suivi d'un Space puis j'ai appuyé Shift+Insert et bien sûr Enter(encore une fois, rien de plus).

Si vous ne pouvez pas utiliser la souris, voir ce tutoriel rapide .

Le droit chemin:

  • Ajoutez les nouvelles dispositions de clavier dont vous avez besoin (grec, russe, ...)

    • Allez dans Paramètres système Personnel Disposition du clavier et ajoutez une nouvelle disposition:

      add new keyboard layout

  • Lorsque vous tapez terminal, basculez entre les mises en page pour saisir la langue que vous souhaitez.


Pour tty1 (où vous pouvez aller avec Ctrl+Alt+F1) - et pas seulement - j'ai trouvé une autre astuce:

~ $ ls 
 bin Desktop file.gif Nohup.out Envoyé à Ubuntu One ttyrecord άλφα 
 Descărcări Documente Muzică Poze tmp.txt Video 
~ $ ls> tmp.txt # redirige la sortie de la commande 'ls' vers le fichier 'tmp.txt'~ $ cat tmp.txt
 bin 
 Descărcări 
 Desktop 
 Documente 
 file.gif 
 Muzică 
 Nohup.out 
 Poze 
 Envoyé à Ubuntu One 
 Tmp.txt 
 Ttyrecord 
 Vidéo 
 Άλφα 
~ $ # notre répertoire est en ligne 13 (dans mon cas); nous utiliserons ce numéro dans la prochaine commande~ $ cat tmp.txt | sed -n 13p
 άλφα 
~ $ cd $ (cat tmp.txt | sed -n 13p)~/άλφα $ # voila~/άλφα> rm -v ../tmp.txt
 a supprimé ‘../tmp.txt ’’s..____.]~/άλφα $
2
Radu Rădeanu

La chose intéressante à propos des fichiers et répertoires sous Linux est qu'ils ont tous inode nombre. Par exemple, faire ls -i me donne dans mon dossier personnel les résultats suivants:

6038625 图片/
5809021 搜狐影音/
6038605 文档/
6038600 桌面/

Maintenant, ce qui est bien, c'est que nous pouvons utiliser ce numéro pour obtenir son nom via la commande find avec son -inum flag et cd vers l'un de ces dossiers comme ceci:

$ pwd                                                              
/home/xieerqi
$ cd "$(find -maxdepth 1 -type d -inum 6038625)"                   
$ pwd
/home/xieerqi/图片

Et bien sûr, puisque nous avons fait ls -i à partir du répertoire de travail actuel, nous avons seulement besoin de -maxdepth 1. Il s'agit en fait d'une approche très fréquente pour supprimer les noms de fichiers qui sont problématiques ou impossibles à obtenir via le copier-coller.

1
Sergiy Kolodyazhnyy

Une possibilité d'éviter d'avoir à le faire du tout: Sudo apt-get install nautilus-open-terminal

Cela ajoute un élément "Ouvrir dans le terminal" au menu Fichier et au menu contextuel du clic droit (lorsqu'aucun fichier n'est sélectionné) dans Nautilus. Par exemple: accédez au dossier incriminé dans Nautilus, puis dans Fichier, Ouvrir dans le terminal.

0
Phoeey

Vous pouvez utiliser zsh comme terminal par défaut (si vous le faites, je vous suggère également d'obtenir oh-my-zsh pour des cadeaux supplémentaires). zsh tab-complete vous permet de "faire défiler" le contenu d'un répertoire en appuyant sur tab. Vous pouvez voir ce dont je parle à 0:53 dans cette vidéo: http://www.youtube.com/watch?v=fE3tYK_wUj8

0
user535877