Но мы можем объявить функцию внутри main ():
int main()
{
void a();
}
. Хотя синтаксис верен, иногда это может привести к «наиболее неприятному анализу»:
#include
struct U
{
U() : val(0) {}
U(int val) : val(val) {}
int val;
};
struct V
{
V(U a, U b)
{
std::cout << "V(" << a.val << ", " << b.val << ");\n";
}
~V()
{
std::cout << "~V();\n";
}
};
int main()
{
int five = 5;
V v(U(five), U());
}
=> нет выхода программы.
(только после компиляции предупреждает Кланг).
Используйте эту команду:
cd path_under_folder_to_zip && \
zip -r 1.zip folder_to_zip >/dev/null && \
mv 1.zip my_current_path
Просто используйте параметр -j
, работает на OSX
, я не знаю о Linux.
zip -j -r 1.zip /home/username/the_folder
Как насчет этого:
function zipExtraFolder {
if [ $# -lt 2 ]; then
echo "provide at least two arguments"
return
fi
folder=$2
mkdir del
echo cp -r `dirname $folder` del
cd del
echo zip -r ../$1 .
cd -
rm -rf del
}
Определите выше как функцию оболочки в вашем .bashrc, и вы должны быть в состоянии использовать это когда угодно. Использование будет выглядеть следующим образом.
zipExtraFolder 1.zip /home/username/the_folder
Используйте относительный путь при указании файла на zip.
cd /home/username
zip -r 1.zip ./the_folder
Затем, когда вы разархивируете, это будет относительный путь, начиная с любой папки, в которой вы находитесь, при распаковке.