web-dev-qa-db-fra.com

Une commande pour les fonctionnalités de ls et cat?

Ok les gars, ceci est un avertissement question expérimentale!

Je confonds souvent cat et ls lorsque je travaille rapidement sur la console. Pas parce que j'oublie leurs significations, non. Tout simplement parce que je tape sans réfléchir profondément à la commande - cela vient automatiquement. Je suis certain que tout le monde sait ce que j'essaie d'expliquer: vous n'avez pas à penser quoi taper si votre tâche consiste à répertorier, par exemple, un fichier texte - ou un répertoire.

Maintenant, pourquoi deux commandes différentes? Les choses seraient plus faciles s'il existait une commande répertoriant un répertoire si la cible est un répertoire et répertoriant le contenu d'un fichier si la cible est un fichier.

Une telle commande existe-t-elle?

Je sais qu'il existe des éditeurs (par exemple, vim) pouvant afficher un répertoire. Mais ce n'est pas ce que je veux, car je veux rester sur la console. Deuxièmement, après avoir ouvert un fichier par le biais de la liste de répertoires vim, il n’ya aucun moyen de revenir en arrière - du moins aucun que je connaisse.

S'il n'y a pas de solution prête à l'emploi, je vais essayer de créer un petit script bash (wrapper) en cat et ls. Mais ce n’est pas préférable, car lorsque vous travaillez avec plusieurs systèmes différents, vous devez le placer sur chacun d’eux ...

2
Nicolas

En termes simples, cette fonction est votre .bashrc:

catls()
{
  [[ -f "$1" ]] && cat "$1" || ls "$1";
}

Il utilisera cat fichiers normaux mais appellera ls pour les répertoires

6
Sylvain Pineau