[bash] fonction swap (résolu)

Ce qui ne concerne ni le forum ni des problèmes
Répondre
Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

[bash] fonction swap (résolu)

Message par Piczel » mar. 12 janv. 2016, 12:48

Bonjour tout le monde, suite à une multitude de fois où j'ai interverti le nom de deux fichiers, j'me suis dit que j'allais faire une fonction SWAP que voilà :

Code : Tout sélectionner

function SWAP(){
	local TMPFILE=tmp.$$
	cp "$1" $TEMPFILE
	mv "$2" "$1"
	mv $TEMPFILE "$2"
}
(j'ai aucune notion de bash, excusez mon erreur)

mais cette fonction ne marche pas.. (c'est dans mon .zshrc)
prenons un exemple : deux fichiers ABC avec abc dedans, et DEF, avec def

SWAP ABC DEF, après je me retrouve juste avec def dans ABC.. une idée ?..

J'avais pensé à faire tout ça avec cat, mais ça me semblait juste plus lourd, plus long, et moins pratique

Qu'en pensez vous ?
Merci, bonen journée !
Dernière modification par Piczel le mar. 12 janv. 2016, 14:07, modifié 1 fois.
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49
Contact :

Re: [bash] fonction swap

Message par Moviuro » mar. 12 janv. 2016, 13:02

Code : Tout sélectionner

% set -x; SWAP ABC DEF
% set +x
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap

Message par Piczel » mar. 12 janv. 2016, 13:03

merci!
ça change quoi set -x et set +x ?
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49
Contact :

Re: [bash] fonction swap

Message par Moviuro » mar. 12 janv. 2016, 13:09

ça va faire cracher plein de choses à ton terminal, entre autres ce qui se passe réellement lorsque tu lances ta fonction. ça ressemblera à un truc (plus court) comme ça
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap

Message par Piczel » mar. 12 janv. 2016, 13:13

okep merci, tiens voilà le résultat :

Code : Tout sélectionner

+-zsh:5> SWAP ABC DEF
+SWAP:1> local TMPFILE=tmp.1716
+SWAP:2> cp ABC
cp: opérande de fichier cible manquant après << ABC >>
Saisissez << cp --help >> pour plus d'informations.
+SWAP:3> mv DEF ABC
mv: impossible d'évaluer << DEF >>: Aucun fichier ou dossier de ce type
+SWAP:4> mv DEF
mv: opérande de fichier cible manquant après << DEF >>
Saisissez << mv --help >> pour plus d'informations.
ok, le problème est dans la 2e ligne du truc, avec le $TMPFILE
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap

Message par Piczel » mar. 12 janv. 2016, 13:15

le con !!! regarde, j'appelle $TMPFILE, et mon truc s'appelle TEMPFILE..

EDIT : même en changeant, ça marche pas.. toujours la même erreur
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49
Contact :

Re: [bash] fonction swap

Message par Moviuro » mar. 12 janv. 2016, 13:45

Tu as fais une typo, je te laisse résoudre ;)

:copain:
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap

Message par Piczel » mar. 12 janv. 2016, 13:53

Ben.. ça bloque toujours à

Code : Tout sélectionner

+SWAP:4> mv DEF
mv: opérande de fichier cible manquant après << DEF >>
alors que le local, cp, et le premier mv marche très bien ..
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49
Contact :

Re: [bash] fonction swap

Message par Moviuro » mar. 12 janv. 2016, 13:58

typo, bis repetitas
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap

Message par Piczel » mar. 12 janv. 2016, 14:07

effectivement, manquait juste des guillemets, merci mon ami !

voici le SWAP final :

Code : Tout sélectionner

function SWAP(){
	local TMPFILE=tmp.$$
	cp "$1" "$TMPFILE"
	mv "$2" "$1"
	mv "$TMPFILE" "$2"
}
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49
Contact :

Re: [bash] fonction swap (solved)

Message par Moviuro » mar. 12 janv. 2016, 14:24

Au passage, tu devrais utiliser : cp --reflink=auto -- au lieu de cp et mv -- au lieu de mv pour ne pas planter sur des fichiers au nom exotique ;)
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap (solved)

Message par Piczel » mar. 12 janv. 2016, 14:30

Je regarde ça plus tard suis occupé là, merci à toi !
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap (solved)

Message par Piczel » mar. 12 janv. 2016, 18:02

Bon j'ai regardé, je vois pas ce que c'est mv -- et cp --, les -- c'est pas pour ajouter des options normalement ?
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

benjarobin
Maître du Kyudo
Messages : 15476
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [bash] fonction swap (solved)

Message par benjarobin » mar. 12 janv. 2016, 18:04

Non au contraire les "--" c'est pour indiquer que tout ce qui suit ne sont pas des options, mais des fichiers.
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap (solved)

Message par Piczel » mar. 12 janv. 2016, 18:41

du coup.. cp -- fichier1 fichier2 fait exactement pareil que cp fichier1 fichier2, mais on le rajoute par précaution, au cas où le nom est trop compliqué c'est ça ?
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

benjarobin
Maître du Kyudo
Messages : 15476
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [bash] fonction swap (solved)

Message par benjarobin » mar. 12 janv. 2016, 18:43

oui
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [bash] fonction swap (résolu)

Message par Piczel » mar. 12 janv. 2016, 20:56

super merci !
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.

Répondre