How to move files from subdirectories that have the same directory name to its relative upper/parent directory?
Clash Royale CLAN TAG#URR8PPP
up vote
1
down vote
favorite
So, I have a directory structure like this:
parent/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
I want to move all files (with different filename) from all directories named source
to its relative upper/parent directory. So, the result should be something like this:
parent2/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
Is there an easy way (one liner) to accomplish this, maybe using the find
command?
Preferably one that's not too complex for me to understand. :D I'm quite new to Linux.
command-line bash 18.04 directory
New contributor
add a comment |Â
up vote
1
down vote
favorite
So, I have a directory structure like this:
parent/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
I want to move all files (with different filename) from all directories named source
to its relative upper/parent directory. So, the result should be something like this:
parent2/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
Is there an easy way (one liner) to accomplish this, maybe using the find
command?
Preferably one that's not too complex for me to understand. :D I'm quite new to Linux.
command-line bash 18.04 directory
New contributor
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
So, I have a directory structure like this:
parent/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
I want to move all files (with different filename) from all directories named source
to its relative upper/parent directory. So, the result should be something like this:
parent2/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
Is there an easy way (one liner) to accomplish this, maybe using the find
command?
Preferably one that's not too complex for me to understand. :D I'm quite new to Linux.
command-line bash 18.04 directory
New contributor
So, I have a directory structure like this:
parent/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
I want to move all files (with different filename) from all directories named source
to its relative upper/parent directory. So, the result should be something like this:
parent2/
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
â âÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
â âÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
Is there an easy way (one liner) to accomplish this, maybe using the find
command?
Preferably one that's not too complex for me to understand. :D I'm quite new to Linux.
command-line bash 18.04 directory
command-line bash 18.04 directory
New contributor
New contributor
edited 3 hours ago
New contributor
asked 4 hours ago
Lukman Hakim
62
62
New contributor
New contributor
add a comment |Â
add a comment |Â
3 Answers
3
active
oldest
votes
up vote
3
down vote
A simple for
loop with the globstar
option enabled (run shopt -s globstar
to do that) will do the job:
for i in ./**/source/; do
mv "$i"* "$i%source/"
done
The GNU parallel
equivalent for this loop is:
parallel mv * /// ::: ./**/source/
Explanation
globstar
If set, the pattern**
used in a pathname expansion context will match all files and zero or more directories
and subdirectories. If the pattern is followed by a/
, only directories and subdirectories match.
./**/source/
matches every directory named source
in and under the current directory, the mv
command moves every file from inside the directory to its parent directory â $i%source/
is a parameter expansion which removes the string source/
from the end of the (path) string.
Example run
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
$ for i in ./**/source/; do mv "$i"* "$i%source/"; done
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
1
@dessertglobstar
option was not enabled. Thanks.
â Vijay
1 hour ago
add a comment |Â
up vote
0
down vote
You can use the below code to get what you want:
dir=$(find . -name 'source' | sed s:source::)
echo $dir
for path in $dir; do
mv "$path"source/* "$path"
done
The find
command returns the directory path from parent to source directory. In this find . -name 'source'
'.' represents the parent directory and 'source' represents the subdirectory you want to find.
The sed
command removes source
from the result of find
command.
And the rest is just iteration (for
) and move command (mv
)
add a comment |Â
up vote
0
down vote
If you want a find
solution, you could use this:
find parent -name "source" -type d -exec bash -c 'cd "$1"; mv * ..' bash ;
Explanation:
find parent -name "source" -type d
- For each directory namedsource
inparent
...-exec bash -c '...' bash ;
- Call Bash withbash
as$0
and the directory path as$1
cd "$1"; mv * ..
- cd into the directory; move all its contents up one level.- Alternative:
mv "$1"/* "$1/.."
- Alternative:
This is more or less based on dessert's answer.
add a comment |Â
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
A simple for
loop with the globstar
option enabled (run shopt -s globstar
to do that) will do the job:
for i in ./**/source/; do
mv "$i"* "$i%source/"
done
The GNU parallel
equivalent for this loop is:
parallel mv * /// ::: ./**/source/
Explanation
globstar
If set, the pattern**
used in a pathname expansion context will match all files and zero or more directories
and subdirectories. If the pattern is followed by a/
, only directories and subdirectories match.
./**/source/
matches every directory named source
in and under the current directory, the mv
command moves every file from inside the directory to its parent directory â $i%source/
is a parameter expansion which removes the string source/
from the end of the (path) string.
Example run
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
$ for i in ./**/source/; do mv "$i"* "$i%source/"; done
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
1
@dessertglobstar
option was not enabled. Thanks.
â Vijay
1 hour ago
add a comment |Â
up vote
3
down vote
A simple for
loop with the globstar
option enabled (run shopt -s globstar
to do that) will do the job:
for i in ./**/source/; do
mv "$i"* "$i%source/"
done
The GNU parallel
equivalent for this loop is:
parallel mv * /// ::: ./**/source/
Explanation
globstar
If set, the pattern**
used in a pathname expansion context will match all files and zero or more directories
and subdirectories. If the pattern is followed by a/
, only directories and subdirectories match.
./**/source/
matches every directory named source
in and under the current directory, the mv
command moves every file from inside the directory to its parent directory â $i%source/
is a parameter expansion which removes the string source/
from the end of the (path) string.
Example run
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
$ for i in ./**/source/; do mv "$i"* "$i%source/"; done
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
1
@dessertglobstar
option was not enabled. Thanks.
â Vijay
1 hour ago
add a comment |Â
up vote
3
down vote
up vote
3
down vote
A simple for
loop with the globstar
option enabled (run shopt -s globstar
to do that) will do the job:
for i in ./**/source/; do
mv "$i"* "$i%source/"
done
The GNU parallel
equivalent for this loop is:
parallel mv * /// ::: ./**/source/
Explanation
globstar
If set, the pattern**
used in a pathname expansion context will match all files and zero or more directories
and subdirectories. If the pattern is followed by a/
, only directories and subdirectories match.
./**/source/
matches every directory named source
in and under the current directory, the mv
command moves every file from inside the directory to its parent directory â $i%source/
is a parameter expansion which removes the string source/
from the end of the (path) string.
Example run
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
$ for i in ./**/source/; do mv "$i"* "$i%source/"; done
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
A simple for
loop with the globstar
option enabled (run shopt -s globstar
to do that) will do the job:
for i in ./**/source/; do
mv "$i"* "$i%source/"
done
The GNU parallel
equivalent for this loop is:
parallel mv * /// ::: ./**/source/
Explanation
globstar
If set, the pattern**
used in a pathname expansion context will match all files and zero or more directories
and subdirectories. If the pattern is followed by a/
, only directories and subdirectories match.
./**/source/
matches every directory named source
in and under the current directory, the mv
command moves every file from inside the directory to its parent directory â $i%source/
is a parameter expansion which removes the string source/
from the end of the (path) string.
Example run
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ source
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ source
âÂÂâÂÂâ other.zip
$ for i in ./**/source/; do mv "$i"* "$i%source/"; done
$ tree
.
âÂÂâÂÂâ sub1
âÂÂààâÂÂâÂÂâ file1
âÂÂààâÂÂâÂÂâ file2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub2
âÂÂààâÂÂâÂÂâ sub2.1
âÂÂààâÂÂâÂÂâ something1
âÂÂààâÂÂâÂÂâ something2
âÂÂààâÂÂâÂÂâ source
âÂÂâÂÂâ sub3
âÂÂâÂÂâ sub3.1
âÂÂâÂÂâ sub3.1.1
âÂÂâÂÂâ other.zip
âÂÂâÂÂâ source
edited 1 hour ago
answered 3 hours ago
dessert
20.4k55896
20.4k55896
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
1
@dessertglobstar
option was not enabled. Thanks.
â Vijay
1 hour ago
add a comment |Â
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
1
@dessertglobstar
option was not enabled. Thanks.
â Vijay
1 hour ago
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
I tried. works only in one dir `$ for i in ./**/source/; do echo "$i" ; done ./sub1/source/'
â Vijay
1 hour ago
1
1
@dessert
globstar
option was not enabled. Thanks.â Vijay
1 hour ago
@dessert
globstar
option was not enabled. Thanks.â Vijay
1 hour ago
add a comment |Â
up vote
0
down vote
You can use the below code to get what you want:
dir=$(find . -name 'source' | sed s:source::)
echo $dir
for path in $dir; do
mv "$path"source/* "$path"
done
The find
command returns the directory path from parent to source directory. In this find . -name 'source'
'.' represents the parent directory and 'source' represents the subdirectory you want to find.
The sed
command removes source
from the result of find
command.
And the rest is just iteration (for
) and move command (mv
)
add a comment |Â
up vote
0
down vote
You can use the below code to get what you want:
dir=$(find . -name 'source' | sed s:source::)
echo $dir
for path in $dir; do
mv "$path"source/* "$path"
done
The find
command returns the directory path from parent to source directory. In this find . -name 'source'
'.' represents the parent directory and 'source' represents the subdirectory you want to find.
The sed
command removes source
from the result of find
command.
And the rest is just iteration (for
) and move command (mv
)
add a comment |Â
up vote
0
down vote
up vote
0
down vote
You can use the below code to get what you want:
dir=$(find . -name 'source' | sed s:source::)
echo $dir
for path in $dir; do
mv "$path"source/* "$path"
done
The find
command returns the directory path from parent to source directory. In this find . -name 'source'
'.' represents the parent directory and 'source' represents the subdirectory you want to find.
The sed
command removes source
from the result of find
command.
And the rest is just iteration (for
) and move command (mv
)
You can use the below code to get what you want:
dir=$(find . -name 'source' | sed s:source::)
echo $dir
for path in $dir; do
mv "$path"source/* "$path"
done
The find
command returns the directory path from parent to source directory. In this find . -name 'source'
'.' represents the parent directory and 'source' represents the subdirectory you want to find.
The sed
command removes source
from the result of find
command.
And the rest is just iteration (for
) and move command (mv
)
edited 13 mins ago
wjandrea
7,52642257
7,52642257
answered 21 mins ago
Sathish Kanna
616
616
add a comment |Â
add a comment |Â
up vote
0
down vote
If you want a find
solution, you could use this:
find parent -name "source" -type d -exec bash -c 'cd "$1"; mv * ..' bash ;
Explanation:
find parent -name "source" -type d
- For each directory namedsource
inparent
...-exec bash -c '...' bash ;
- Call Bash withbash
as$0
and the directory path as$1
cd "$1"; mv * ..
- cd into the directory; move all its contents up one level.- Alternative:
mv "$1"/* "$1/.."
- Alternative:
This is more or less based on dessert's answer.
add a comment |Â
up vote
0
down vote
If you want a find
solution, you could use this:
find parent -name "source" -type d -exec bash -c 'cd "$1"; mv * ..' bash ;
Explanation:
find parent -name "source" -type d
- For each directory namedsource
inparent
...-exec bash -c '...' bash ;
- Call Bash withbash
as$0
and the directory path as$1
cd "$1"; mv * ..
- cd into the directory; move all its contents up one level.- Alternative:
mv "$1"/* "$1/.."
- Alternative:
This is more or less based on dessert's answer.
add a comment |Â
up vote
0
down vote
up vote
0
down vote
If you want a find
solution, you could use this:
find parent -name "source" -type d -exec bash -c 'cd "$1"; mv * ..' bash ;
Explanation:
find parent -name "source" -type d
- For each directory namedsource
inparent
...-exec bash -c '...' bash ;
- Call Bash withbash
as$0
and the directory path as$1
cd "$1"; mv * ..
- cd into the directory; move all its contents up one level.- Alternative:
mv "$1"/* "$1/.."
- Alternative:
This is more or less based on dessert's answer.
If you want a find
solution, you could use this:
find parent -name "source" -type d -exec bash -c 'cd "$1"; mv * ..' bash ;
Explanation:
find parent -name "source" -type d
- For each directory namedsource
inparent
...-exec bash -c '...' bash ;
- Call Bash withbash
as$0
and the directory path as$1
cd "$1"; mv * ..
- cd into the directory; move all its contents up one level.- Alternative:
mv "$1"/* "$1/.."
- Alternative:
This is more or less based on dessert's answer.
edited 3 mins ago
answered 15 mins ago
wjandrea
7,52642257
7,52642257
add a comment |Â
add a comment |Â
Lukman Hakim is a new contributor. Be nice, and check out our Code of Conduct.
Lukman Hakim is a new contributor. Be nice, and check out our Code of Conduct.
Lukman Hakim is a new contributor. Be nice, and check out our Code of Conduct.
Lukman Hakim is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1089217%2fhow-to-move-files-from-subdirectories-that-have-the-same-directory-name-to-its-r%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password