Comment créer un fichier sous Linux à partir de la fenêtre du terminal? [fermé]


449

Quelle est la façon la plus simple de créer un fichier dans un terminal Linux?


1
$>newfilepeut également créer un fichier.
EsmaeelE

Réponses:


577

Selon ce que vous voulez que le fichier contienne:

  • touch /path/to/file pour un fichier vide
  • somecommand > /path/to/file pour un fichier contenant la sortie d'une commande.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
    
  • nano /path/to/fileou vi /path/to/file(ou any other editor emacs,gedit etc)
    Il ouvre le fichier existant pour le modifier ou crée et ouvre le fichier vide à saisir, s'il n'existe pas


51
aussi printf "some long message\nwith newlines\n" > file. Bonne chance à tous.
shellter

1
UNIX n'est pas un environnement de ligne de commande, mais une famille de systèmes d'exploitation (très différents). Cela dit: Oui, cela devrait fonctionner sur la plupart des Unices
Eugen Rieck

4
touchfonctionnera sous UNIX, car il s'agit d'un outil standard. L' somecommandexemple fonctionnera car il utilise la syntaxe standard. L' nanoexemple peut ne pas fonctionner car un éditeur nommé nanopeut ne pas être installé (nano n'est pas normalisé). L'éditeur standard est edet pourrait être utilisé à la place de nano, ou vous pouvez utiliser $EDITORpour utiliser votre éditeur de texte par défaut configuré par l'utilisateur ou le système, s'il y en a un.
sorpigal

14
De plus, vous pouvez simplement dire >/path/to/filede créer un fichier vide, même si vous n'en avez pas touch.
sorpigal

2
@EugenRieck Et si on dit la permission refusée
123


92

Créez le fichier en utilisant cat

$ cat > myfile.txt

Maintenant, tapez simplement ce que vous voulez dans le fichier:

Hello World!

CTRL-D pour enregistrer et quitter


Je préfère utiliser cat car il offre un moyen simple et pratique de modifier le fichier immédiatement.
Delali

Vous ne pouvez également rien taper.
Bing Zhao

Quand j'ai essayé cat /etc/systemd/system/sample.service, il a dit "aucun fichier ou répertoire" plutôt que de créer un nouveau fichier sample.service.
TylerH

@TylerH cat /etc/systemd/system/sample.serviceimprime le fichier dans la console cat > /etc/systemd/system/sample.serviceredirige l'entrée standard vers le fichier (c'est pourquoi vous devez fermer l'entrée standard en appuyant sur control-d.
Jerry Jeremiah

40

Il existe plusieurs solutions possibles:

Créer un fichier vide

touch file

>file

echo -n > file

printf '' > file

La echoversion ne fonctionnera que si votre version de echoprend en charge le -ncommutateur pour supprimer les sauts de ligne. Il s'agit d'un ajout non standard. Les autres exemples fonctionneront tous dans un shell POSIX.

Créez un fichier contenant une nouvelle ligne et rien d'autre

echo '' > file

printf '\n' > file

Il s'agit d'un "fichier texte" valide car il se termine par une nouvelle ligne.

Écrire du texte dans un fichier

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

Ce sont équivalents. La $EDITORcommande suppose que vous disposez d'un éditeur de texte interactif défini dans la variable d'environnement EDITOR et que vous entrez interactivement du texte équivalent. La catversion suppose une nouvelle ligne littérale après \et après chaque ligne. En dehors de cela, ils fonctionneront tous dans un shell POSIX.

Bien sûr, il existe de nombreuses autres méthodes pour écrire et créer des fichiers.



17

Comment créer un fichier texte sous Linux:

  • Utilisation touchpour créer un fichier texte:$ touch NewFile.txt
  • Utiliser catpour créer un nouveau fichier: $ cat NewFile.txt
    Le fichier est créé, mais il est vide et attend toujours l'entrée de l'utilisateur. Vous pouvez taper n'importe quel texte dans le terminal, et une fois terminé, CTRL-D le fermera ou CTRL-C vous échappera.
  • Utiliser simplement >pour créer un fichier texte:$ > NewFile.txt
  • Enfin, nous pouvons utiliser n'importe quel nom d'éditeur de texte, puis créer le fichier, tel que:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

16

haha! c'est facile! essaye ça:

$ touch filename

1
Cela fonctionnait avec sudo, j'ai donc pu créer un nouveau fichier dans le dossier système.
Patricia

15

Vous pouvez utiliser la touchcommande, comme les autres l'ont dit:

touch filename

Pour écrire sur un fichier en ligne de commande, vous pouvez utiliser echoou printf:

echo "Foo" > filename
printf "Foo" > filename

Vous pouvez peut-être avoir des problèmes avec les autorisations. Si vous obtenez l'erreur suivante:, bash: filename: Permission deniedvous devez utiliser sudo bash -c 'echo "Foo" > filename', comme décrit ici: /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

1ère méthode

echo -n > filename.txt

2ème méthode

> filename.txt

3ème méthode

touch filename.txt

Pour afficher le contenu du fichier

vi filename.txt

2 méthode est type-> "> filename.txt"
shashwat gupta

La question ne concerne pas le débordement de pile tel que défini dans le centre d'aide . Veuillez ne pas répondre à ces questions; au lieu de cela, vous devez les signaler à l'attention et ils seront fermés ou migrés de manière appropriée.
Toby Speight






4

Dans le cas où vous essayez de créer un nouveau fichier, mais il dit:, 'File does not exist'c'est simplement parce que vous accédez également à un répertoire, qui n'existe pas encore. Vous devez d'abord créer tous les répertoires inexistants à l'aide de la mkdir /path/to/dircommande.


0

Pour créer un fichier vierge avec propriété et autorisations à l'aide de l'installation.

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt

Le sudoest utile dans de nombreux scénarios, mais ne fait pas directement partie de la réponse à la question du PO.
tripleee

Il est nécessaire si vous n'êtes pas le nom d'utilisateur dont vous avez besoin ou que le fichier n'appartient pas au groupe.
LinuxGuru

Oui, il y a des scénarios comme celui-là qui ne sont cependant pas à proprement parler ce que le PO a demandé.
tripleee

0

L'un des moyens les plus simples et rapides

$ vim filename
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.