Maison > Tutoriel système > Linux > Comment modifier le répertoire et répertorier les fichiers dans une commande dans Fish Shell

Comment modifier le répertoire et répertorier les fichiers dans une commande dans Fish Shell

William Shakespeare
Libérer: 2025-03-05 10:25:10
original
308 Les gens l'ont consulté

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

Conclusion

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

accrocher

, consommer des ressources excessives et rendre votre terminal non répondu.

Pas 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 ls
Copier après la connexion
Copier après la connexion
Copier après la connexion
Mé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.

    Le problème avec le contenu de répertoire inscrivant automatiquement
  1. L'exécution automatique de LS après que chaque CD peut conduire à:
  2. Problèmes de performances : Listing des millions de fichiers peuvent prendre beaucoup de temps et d'utilisation de CPU et de mémoire. Shell
  3. : Votre terminal peut se congeler tout en essayant de répertorier les fichiers.
  4. Sortie inutile
  5. : Parfois, vous n'avez pas besoin de voir le contenu d'un répertoire immédiatement après l'avis.

    Méthode 2: Créez une fonction de poisson personnalisée avec le délai d'expiration

    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.

    Étape 1: Créer la fonction

    Ouvrez votre fichier de configuration de coque à poisson (~ / .config / Fish / Config.fish) dans un éditeur de texte:

    cd /path/to/directory; and ls
    Copier après la connexion
    Copier après la connexion
    Copier après la connexion
    Fonction:

    nano ~/.config/fish/config.fish
    Copier après la connexion
    Copier après la connexion
    Voici la panne de la fonction ci-dessus.

    1. Builtin CD $ argv [1] : Modifications du répertoire spécifié.
    2. Et commencez ... end : assure la prolongation des commandes suivantes si le CD est réussi. -l : Exécute ls -l avec un délai d'expiration d'une seconde. Si LS prend plus de 1 seconde, il est terminé.
    3. Echo "Changé en répertoire: $ pwd" : imprime le chemin du répertoire actuel pour plus de clarté.
    4. Vous pouvez également utiliser cette fonction compacte:
    Il suffit d'utiliser l'une des fonctions ci-dessus. Ils effectuent tous les deux la même tâche. Si vous souhaitez utiliser les deux fonctions, donnez simplement à chacun un nom unique.

    É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
    Copier après la connexion
    Copier après la connexion

    Enregistrez le fichier et rechargez la configuration du shell de poisson pour appliquer les modifications:

    Étape 3: Utilisez la commande CDLS

    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
    Copier après la connexion

    Exemple

    :
    source ~/.config/fish/config.fish
    Copier après la connexion

    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/directory
    Copier après la connexion
    Exemple de sortie

    :

    cdls enlightenment/sources/e26/
    Copier après la connexion
    Personnalisation du délai

    Comment modifier le répertoire et répertorier les fichiers dans une commande dans Fish Shell Vous pouvez ajuster la durée de délaidements pour répondre à vos besoins. Par exemple:

    Utilisez 0,5S pour un délai d'expiration plus court: timeout 0.5s ls -l

    Utiliser 2s pour un délai plus long: le délai d'expiration 2S LS -l
  • Il suffit de modifier la valeur de CD par défaut
Comportement pour appliquer la commande par défaut du CD

Commande CD, redéfinir le CD dans votre configuration de coquille de poisson:

Maintenant, chaque fois que vous utilisez CD, il énumèrera automatiquement le contenu du répertoire avec un délai d'expiration d'une seconde.

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
Copier après la connexion

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:

Cette méthode est utile car elle conserve la commande CD d'origine tout en exécutant automatiquement LS avec un délai d'expiration pour éviter les clairs.

bonus: utilisez EXA pour une liste plus rapide

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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:

  • Les meilleures commandes Linux modernes pour les débutants et les experts

Retirez la fonction de poisson

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
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion

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.

Gardez les fonctions dans un répertoire séparé pour une gestion facile

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:

  • Comment gérer les fonctions dans la coquille de poisson sur Linux

Conclusion

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 :

  • [BASH TIPS] Comment naviguer dans les répertoires dans une commande
  • comment naviguer dans les répertoires faster en linux

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal