Maison >Tutoriel système >Linux >Comment modifier le répertoire et répertorier les fichiers dans une commande dans Fish Shell
Si vous utilisez souvent la ligne de commande sur Linux, vous avez probablement souhaité un moyen plus rapide de naviguer dans les répertoires et de visualiser leur contenu.
En règle générale, cela implique d'exécuter des CD pour modifier les répertoires, puis LS pour lister les fichiers. Bien que la combinaison de ces commandes en one semble être une idée intéressante, cela peut causer des problèmes lorsqu'il s'agit de répertoires contenant beaucoup de fichiers.
Dans ce guide, nous vous montrerons comment combinecinecdandlsin fish shell en utilisant la commande délai . Cela vous permet de modifier rapidement les répertoires et de répertorier les fichiers dans une commande tout en garantissant que votre shell reste réactif, même dans les répertoires avec un grand nombre de fichiers.
Table des matières
Pourquoi combiner CD et LS?
Par défaut, lorsque vous utilisez CD pour modifier les répertoires, les poissons (ou tout autre coquille) n'affiche pas les fichiers dans le nouvel emplacement. Exécuter LS séparément à chaque fois peut être répétitif . La combinaison de ces commandes permet de voir plus facilement le contenu d'un répertoire sans étapes supplémentaires.
Cependant, il y a une prise: énumérant le contenu d'un répertoire avec des millions de fichiers peut provoquer votre coquille
accrocherPas de soucis! Dans les étapes suivantes, nous fournirons toutes les façons possibles de combiner les commandes CD et LS.
cd /path/to/directory; and lsMéthode 1: UNE TIME Utiliser la commande
Si vous avez juste besoin de le faire une fois, vous pouvez utiliser la commande suivante:
Remplacer / path / to / to Directory par le dossier que vous souhaitez ouvrir. Le et garantit que LS s'exécute uniquement si le CD réussit.
La commande Timeout vous permet d'exécuter une commande avec une limite de temps. Si la commande ne se termine pas dans le temps spécifié, il est terminé. Ceci est parfait pour empêcher LS de suspendre les répertoires avec trop de fichiers.
Voici comment créer une fonction de coquille de poisson qui combine les CD et LS en toute sécurité à l'aide de Timeout.
Ouvrez votre fichier de configuration de coque à poisson (~ / .config / Fish / Config.fish) dans un éditeur de texte:
cd /path/to/directory; and lsFonction:
nano ~/.config/fish/config.fishVoici la panne de la fonction ci-dessus.
Étape 2: Enregistrez et rechargez la configuration
function cdls # Change to the specified directory builtin cd $argv[1] and begin # List directory contents with a timeout of 1 second echo "Changed to directory: $PWD" timeout 1s ls -l end end
Enregistrez le fichier et rechargez la configuration du shell de poisson pour appliquer les modifications:
Maintenant, vous pouvez utiliser la commande CDLS pour changer les directives et énumérer leurs contenus CONTANT En toute sécurité:
function cdls cd $argv; and timeout 1s ls -l end
Exemple
:source ~/.config/fish/config.fish
Si le répertoire contient un nombre gérable de fichiers, ls -l se terminera en 1 seconde et que vous verrez la liste. Si le répertoire est trop grand, le délai d'expiration tuera la commande LS après 1 seconde, empêchant votre shell de suspendre.
cdls /path/to/directoryExemple de sortie
:
cdls enlightenment/sources/e26/Personnalisation du délai
Vous pouvez ajuster la durée de délaidements pour répondre à vos besoins. Par exemple:
Utiliser 2s pour un délai plus long: le délai d'expiration 2S LS -l
Commande CD, redéfinir le CD dans votre configuration de coquille de poisson:
Méthode 3: Utilisez une abréviation
Changed to directory: /home/ostechnix/enlightenment/sources/e26 total 56 drwxrwxr-x 7 ostechnix ostechnix 4096 Jan 17 19:13 ecrire drwxrwxr-x 11 ostechnix ostechnix 4096 Jan 17 19:13 edi drwxrwxr-x 18 ostechnix ostechnix 4096 Jan 17 19:02 efl drwxrwxr-x 12 ostechnix ostechnix 4096 Jan 17 19:14 eflete drwxrwxr-x 11 ostechnix ostechnix 4096 Jan 17 19:10 enlightenment drwxrwxr-x 8 ostechnix ostechnix 4096 Jan 17 19:14 enlightenment-module-forecasts drwxrwxr-x 8 ostechnix ostechnix 4096 Jan 17 19:14 enlightenment-module-penguins drwxrwxr-x 7 ostechnix ostechnix 4096 Jan 17 19:14 enlightenment-module-places drwxrwxr-x 7 ostechnix ostechnix 4096 Jan 17 19:14 entice drwxrwxr-x 9 ostechnix ostechnix 4096 Jan 17 19:13 enventor drwxrwxr-x 7 ostechnix ostechnix 4096 Jan 17 19:12 ephoto drwxrwxr-x 7 ostechnix ostechnix 4096 Jan 17 19:13 evisum drwxrwxr-x 7 ostechnix ostechnix 4096 Jan 17 19:13 express drwxrwxr-x 6 ostechnix ostechnix 4096 Jan 17 19:13 rage
Shell de poisson soutient les abréviations, qui expandent dans les commandes complètes lorsque vous les tapez. Pour créer une abréviation pour CD qui comprend LS, exécutez:
Si vous travaillez fréquemment avec de grands répertoires, envisagez d'utiliser EXA, une alternative moderne à LS. Exa est plus rapide et plus riche en fonctionnalités, ce qui le rend mieux adapté à la gestion des répertoires avec de nombreux fichiers.
Voici comment modifier la fonction pour utiliser EXA:
cd /path/to/directory; and ls
Nous avons déjà compilé une liste d'alternatives modernes aux commandes Linux populaires. Cette liste fournit les meilleurs remplacements pour les anciennes commandes Linux classiques. Veuillez visiter le lien suivant pour plus de détails:
Si vous ne souhaitez plus utiliser les CDL de la fonction de poisson, supprimez simplement les lignes que vous avez ajoutées dans le fichier de configuration du poisson. Après avoir supprimé ces lignes, rechargez la configuration du poisson à l'aide de la commande:
nano ~/.config/fish/config.fish
Si vous avez ajouté l'abréviation de CD dans la coque de poisson comme indiqué dans la méthode 3, TOU peut le supprimer en utilisant la commande:
function cdls # Change to the specified directory builtin cd $argv[1] and begin # List directory contents with a timeout of 1 second echo "Changed to directory: $PWD" timeout 1s ls -l end end
Cela supprimera l'abréviation et la restauration de CD à son comportement par défaut. Si vous souhaitez vous assurer que l'abréviation est supprimée en permanence, vérifiez votre fichier ~ / .config / fish / config.fish et supprimez toute ligne qui définit ABBR --add CD.
Comme vous l'avez peut-être remarqué, j'ai enregistré la fonction dans le fichier de configuration de poisson dans ce tutoriel. Bien que cela fonctionne, ce n'est pas la meilleure approche.
Ajouter plus de fonctions peut encombrer le fichier de configuration, ce qui le rend plus difficile à gérer. Pour le garder propre, stockez chaque fonction de poisson dans son propre fichier dans un répertoire séparé. Pour plus de détails, veuillez lire le guide suivant:
combinant CD et LS dans la coque à poisson est un excellent moyen de simplifier la navigation de ligne de commande dans Linux. En utilisant la commande Timeout, vous pouvez effectuer une liste de répertoires automatiques sans risquer de problèmes de performances ou un shell insensible.
Que vous utilisiez une commande ponctuelle, une fonction personnalisée ou une abréviation, l'ajout d'un délai d'attente vous assure des problèmes de performances lorsque vous traitez avec de grands répertoires. En utilisant ces méthodes, vous pouvez rendre les répertoires de navigation dans la coquille de poisson plus rapidement et plus efficace.
LIRE CONNEXES :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!